

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __rilapitypes_h__
#define __rilapitypes_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_rilapitypes_0000_0000 */
/* [local] */ 

//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (c) Microsoft Corporation. All rights reserved.
//
//--------------------------------------------------------------------------
// Turns on packing of structures to align structures with 4 bytes, which 
// disables the automatic 8-byte alignment on 64-bit platforms.
#include <pshpack4.h>
#define	RIL_MAJOR_VERSION_APOLLO_BASE	( 0 )

#define	RIL_MAJOR_VERSION_PORTICO_BASE	( 10 )

#define	RIL_MAJOR_VERSION_BLUE_BASE	( 20 )

#define	RIL_MAJOR_VERSION_THRESHOLD_BASE	( 30 )

#define	RIL_MAJOR_VERSION_REDSTONE_BASE	( 40 )

#define	RIL_CURRENT_MAJOR_VERSION	( 50 )

#define	WP8_RTM_DRIVER_VERSION	( 3 )

#define	WP8_GDR1_DRIVER_VERSION	( 10 )

#define	WP8_GDR2_DRIVER_VERSION	( 11 )

#define	WPB_DSDX_DRIVER_VERSION	( 20 )

#define	WPB_VOLTE_DRIVER_VERSION	( 21 )

#define	WPB_SGLTE_DRIVER_VERSION	( 22 )

#define	WPB_GDR1_DRIVER_VERSION	( 23 )

#define	TH_RTM_DRIVER_VERSION	( 30 )

#define	RS_RTM_DRIVER_VERSION	( 40 )

#define	RS2_RTM_DRIVER_VERSION	( 45 )

#define	RS3_RTM_DRIVER_VERSION	( 50 )

#define	MAXLENGTH_ADDRESS	( 256 )

#define	MAXLENGTH_DESCRIPTION	( 256 )

#define	MAXLENGTH_SUBADDR	( 256 )

#define	MAXLENGTH_OPERATOR_LONG	( 32 )

#define	MAXLENGTH_OPERATOR_SHORT	( 16 )

#define	MAXLENGTH_OPERATOR_NUMERIC	( 16 )

#define	MAXLENGTH_OPERATOR_COUNTRY_CODE	( 8 )

#define	MAXLENGTH_HDR	( 256 )

#define	MAXLENGTH_MSG	( 512 )

#define	MAXLENGTH_CDMAHDR	( 140 )

#define	MAXLENGTH_CDMAMSG	( 256 )

#define	MAXLENGTH_DIGITALSIGNATURE	( 43 )

#define	MAXNUM_PINREF	( 8 )

#define	MAXLENGTH_UICCPATH	( 8 )

#define	MAXLENGTH_PASSWORD	( 256 )

#define	MAXNUM_GROUPS	( 10 )

#define	MAXLENGTH_PHONEBOOKTEXT	( 256 )

#define	MAXLENGTH_EMERGENCYNUMBER	( 8 )

#define	MAXLENGTH_ERRLONG	( 256 )

#define	MAXLENGTH_DMCONFIGINFOSTRING	( 256 )

#define	MAXLENGTH_RADIOGROUPTEXT	( 32 )

#define	MAXLENGTH_RADIOITEMVALUE_BYTE	( 64 )

#define	MAXLENGTH_RADIOITEMVALUE_WCHAR	( 32 )

#define	MAXLENGTH_RADIOITEMVALUE_INT	( 16 )

#define	MAXLENGTH_RADIOITEMVALUE_UINT	( 16 )

#define	MAXLENGTH_RADIOITEMNAME	( 32 )

#define	MAXLENGTH_RADIOITEM_OPTIONS	( 256 )

#define	MAXLENGTH_DTMF	( 256 )

#define	RIL_CB_CONFIG_MAX	( 50 )

#define	MAX_GSMPOS_COUNT_OF_NMR	( 15 )

#define	MAX_EUTRAPOS_COUNT_OF_MRL	( 15 )

#define	MAX_UMTSPOS_COUNT_OF_MRL	( 15 )

#define	MAX_TDSCDMAPOS_COUNT_OF_MRL	( 15 )

#define	MAX_C2KPOS_COUNT_OF_MRL	( 12 )

#define	MAXLENGTH_RADIOPASSWORD_WCHAR	( 32 )

#define	MAXLENGTH_APPID	( 32 )

#define	MAXLENGTH_APPNAME	( 256 )

#define	MAXLENGTH_ICCID	( 10 )

#define	MAXLENGTH_ATR	( 36 )

#define	MAXLENGTH_APDU	( 261 )

#define	MAXNUM_EFACCESSTYPES	( 4 )

#define	MAXNUM_EXECUTORS	( 2 )

#define	MAXNUM_EXECUTOR_APPS	( 2 )

#define	MAXLENGTH_IMSI	( 16 )

#define	MAXNUM_CALL_MEDIA	( 4 )

#define	MAXLENGTH_ACQUISITIONORDER	( 16 )

#define	MAXLENGTH_SIP_FAILURE_REASON_STRING	( 256 )

#define	MAXLENGTH_MWISUBJECT	( 256 )

#define	MAXTERMINALCAPABILITYSIZE	( 256 )

#define	MAXLENGTH_RESETMODEMCONFIGSTRING	( 256 )

#define	MAXLENGTH_RTTDATA	( 127 )

#define	RIL_PBINDEX_FIRSTAVAILABLE	( 0xffffffff )

#define	RIL_3GPP_MCC_MIN	( 0 )

#define	RIL_3GPP_MCC_MAX	( 999 )

#define	RIL_3GPP_MNC_MIN	( 0 )

#define	RIL_3GPP_MNC_MAX	( 999 )

#define	RIL_GSM_MCC_MIN	( RIL_3GPP_MCC_MIN )

#define	RIL_GSM_MCC_MAX	( RIL_3GPP_MCC_MAX )

#define	RIL_GSM_MNC_MIN	( RIL_3GPP_MNC_MIN )

#define	RIL_GSM_MNC_MAX	( RIL_3GPP_MNC_MAX )

#define	RIL_GSM_LAC_MIN	( 0 )

#define	RIL_GSM_LAC_MAX	( 65535 )

#define	RIL_GSM_CELLID_MIN	( 0 )

#define	RIL_GSM_CELLID_MAX	( 65535 )

#define	RIL_GSM_TA_MIN	( 0 )

#define	RIL_GSM_TA_MAX	( 255 )

#define	RIL_GSM_ARFCN_MIN	( 0 )

#define	RIL_GSM_ARFCN_MAX	( 1023 )

#define	RIL_GSM_BSID_MIN	( 0 )

#define	RIL_GSM_BSID_MAX	( 63 )

#define	RIL_GSM_RXLEVEL_MIN	( 0 )

#define	RIL_GSM_RXLEVEL_MAX	( 63 )

#define	RIL_UMTS_MCC_MIN	( RIL_3GPP_MCC_MIN )

#define	RIL_UMTS_MCC_MAX	( RIL_3GPP_MCC_MAX )

#define	RIL_UMTS_MNC_MIN	( RIL_3GPP_MNC_MIN )

#define	RIL_UMTS_MNC_MAX	( RIL_3GPP_MNC_MAX )

#define	RIL_UMTS_LAC_MIN	( 0 )

#define	RIL_UMTS_LAC_MAX	( 65535 )

#define	RIL_UMTS_CELLID_MIN	( 0 )

#define	RIL_UMTS_CELLID_MAX	( 268435455 )

#define	RIL_UMTS_UARFCN_MIN	( 0 )

#define	RIL_UMTS_UARFCN_MAX	( 16383 )

#define	RIL_UMTS_FREQINFO_UL_MIN	( RIL_UMTS_UARFCN_MIN )

#define	RIL_UMTS_FREQINFO_UL_MAX	( RIL_UMTS_UARFCN_MAX )

#define	RIL_UMTS_FREQINFO_DL_MIN	( RIL_UMTS_UARFCN_MIN )

#define	RIL_UMTS_FREQINFO_DL_MAX	( RIL_UMTS_UARFCN_MAX )

#define	RIL_UMTS_FREQINFO_NT_MIN	( RIL_UMTS_UARFCN_MIN )

#define	RIL_UMTS_FREQINFO_NT_MAX	( RIL_UMTS_UARFCN_MAX )

#define	RIL_UMTS_PRIMARY_SC_MIN	( 0 )

#define	RIL_UMTS_PRIMARY_SC_MAX	( 511 )

#define	RIL_UMTS_RSCP_MIN	( -120 )

#define	RIL_UMTS_RSCP_MAX	( -25 )

#define	RIL_UMTS_ECNO_MIN	( -50 )

#define	RIL_UMTS_ECNO_MAX	( 0 )

#define	RIL_UMTS_PATHLOSS_MIN	( 46 )

#define	RIL_UMTS_PATHLOSS_MAX	( 173 )

#define	RIL_TDSCDMA_MCC_MIN	( RIL_3GPP_MCC_MIN )

#define	RIL_TDSCDMA_MCC_MAX	( RIL_3GPP_MCC_MAX )

#define	RIL_TDSCDMA_MNC_MIN	( RIL_3GPP_MNC_MIN )

#define	RIL_TDSCDMA_MNC_MAX	( RIL_3GPP_MNC_MAX )

#define	RIL_TDSCDMA_LAC_MIN	( 0 )

#define	RIL_TDSCDMA_LAC_MAX	( 65535 )

#define	RIL_TDSCDMA_CELLID_MIN	( 0 )

#define	RIL_TDSCDMA_CELLID_MAX	( 268435455 )

#define	RIL_TDSCDMA_UARFCN_MIN	( 0 )

#define	RIL_TDSCDMA_UARFCN_MAX	( 16383 )

#define	RIL_TDSCDMA_CELLPARAMID_MIN	( 0 )

#define	RIL_TDSCDMA_CELLPARAMID_MAX	( 127 )

#define	RIL_TDSCDMA_TA_MIN	( 0 )

#define	RIL_TDSCDMA_TA_MAX	( 1023 )

#define	RIL_TDSCDMA_RSCP_MIN	( -128 )

#define	RIL_TDSCDMA_RSCP_MAX	( -25 )

#define	RIL_TDSCDMA_PATHLOSS_MIN	( 46 )

#define	RIL_TDSCDMA_PATHLOSS_MAX	( 158 )

#define	RIL_LTE_MCC_MIN	( RIL_3GPP_MCC_MIN )

#define	RIL_LTE_MCC_MAX	( RIL_3GPP_MCC_MAX )

#define	RIL_LTE_MNC_MIN	( RIL_3GPP_MNC_MIN )

#define	RIL_LTE_MNC_MAX	( RIL_3GPP_MNC_MAX )

#define	RIL_LTE_CELLID_MIN	( 0 )

#define	RIL_LTE_CELLID_MAX	( 268435455 )

#define	RIL_LTE_EARFCN_MIN	( 0 )

#define	RIL_LTE_EARFCN_MAX	( 65535 )

#define	RIL_LTE_PHYSCELLID_MIN	( 0 )

#define	RIL_LTE_PHYSCELLID_MAX	( 503 )

#define	RIL_LTE_TAC_MIN	( 0 )

#define	RIL_LTE_TAC_MAX	( 65535 )

#define	RIL_LTE_RSRP_MIN	( -140 )

#define	RIL_LTE_RSRP_MAX	( -44 )

#define	RIL_LTE_RSRQ_MIN	( -20 )

#define	RIL_LTE_RSRQ_MAX	( -3 )

#define	RIL_LTE_TA_MIN	( 0 )

#define	RIL_LTE_TA_MAX	( 255 )

#define	RIL_C2K_SID_MIN	( 0 )

#define	RIL_C2K_SID_MAX	( 32767 )

#define	RIL_C2K_NID_MIN	( 0 )

#define	RIL_C2K_NID_MAX	( 65535 )

#define	RIL_C2K_BSID_MAX	( 65535 )

#define	RIL_C2K_BASELAT_MIN	( 0 )

#define	RIL_C2K_BASELAT_MAX	( 4194303 )

#define	RIL_C2K_BASELONG_MIN	( 0 )

#define	RIL_C2K_BASELONG_MAX	( 8388607 )

#define	RIL_C2K_REFPN_MIN	( 0 )

#define	RIL_C2K_REFPN_MAX	( 511 )

#define	RIL_C2K_PILOTSTRENGTH_MIN	( 0 )

#define	RIL_C2K_PILOTSTRENGTH_MAX	( 63 )

#define	MAXLENGTH_ADDRESS1	( 76 )

#define	MAXLENGTH_ADDRESS2	( 76 )

#define	MAXLENGTH_CITY	( 76 )

#define	MAXLENGTH_STATE	( 76 )

#define	MAXLENGTH_COUNTRY	( 76 )

#define	MAXLENGTH_COUNTRYCODE	( 11 )

#define	MAXLENGTH_ZIP	( 15 )

#define	MAXLENGTH_FORMATTEDADDRESS	( 256 )

#define	MAXLENGTH_REGIONCODE	( 11 )

#define	RIL_ERROR_MASK	( ( 0x80000000 | 0x1000000 )  )

#define	NOTIFICATION_CLASS_MASK	( 0xffff0000 )

typedef wchar_t WCHAR;

typedef byte BYTE;

typedef unsigned short WORD;

typedef DWORD HUICCAPP;

typedef struct RILRANGE
    {
    DWORD dwMinValue;
    DWORD dwMaxValue;
    } 	RILRANGE;

typedef struct RILRANGE *LPRILRANGE;

typedef 
enum RILADDRESSPARAMMASK
    {
        RIL_PARAM_A_NONE	= 0,
        RIL_PARAM_A_TYPE	= 0x1,
        RIL_PARAM_A_NUMPLAN	= 0x2,
        RIL_PARAM_A_ADDRESS	= 0x4,
        RIL_PARAM_A_ALL	= 0x7
    } 	RILADDRESSPARAMMASK;

typedef 
enum RILADDRESSTYPE
    {
        RIL_ADDRTYPE_UNKNOWN	= 0,
        RIL_ADDRTYPE_INTERNATIONAL	= 0x1,
        RIL_ADDRTYPE_NATIONAL	= 0x2,
        RIL_ADDRTYPE_NETWKSPECIFIC	= 0x3,
        RIL_ADDRTYPE_SUBSCRIBER	= 0x4,
        RIL_ADDRTYPE_ALPHANUM	= 0x5,
        RIL_ADDRTYPE_ABBREV	= 0x6,
        RIL_ADDRTYPE_IP	= 0x7,
        RIL_ADDRTYPE_EMAIL	= 0x8,
        RIL_ADDRTYPE_URI	= 0x9,
        RIL_ADDRTYPE_MAX	= RIL_ADDRTYPE_URI
    } 	RILADDRESSTYPE;

typedef 
enum RILADDRESSNUMPLAN
    {
        RIL_NUMPLAN_UNKNOWN	= 0,
        RIL_NUMPLAN_TELEPHONE	= 0x1,
        RIL_NUMPLAN_DATA	= 0x2,
        RIL_NUMPLAN_TELEX	= 0x3,
        RIL_NUMPLAN_NATIONAL	= 0x4,
        RIL_NUMPLAN_PRIVATE	= 0x5,
        RIL_NUMPLAN_ERMES	= 0x6,
        RIL_NUMPLAN_MAX	= RIL_NUMPLAN_ERMES
    } 	RILADDRESSNUMPLAN;

typedef struct RILADDRESS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILADDRESSTYPE dwType;
    RILADDRESSNUMPLAN dwNumPlan;
    WCHAR wszAddress[ 256 ];
    } 	RILADDRESS;

typedef struct RILADDRESS *LPRILADDRESS;

typedef 
enum RILSUBADDRESSPARAMMASK
    {
        RIL_PARAM_SA_TYPE	= 0x1,
        RIL_PARAM_SA_SUBADDRESS	= 0x2,
        RIL_PARAM_SA_ALL	= 0x3
    } 	RILSUBADDRESSPARAMMASK;

typedef 
enum RILSUBADDRESSTYPE
    {
        RIL_SUBADDRTYPE_NSAP	= 0x1,
        RIL_SUBADDRTYPE_USER	= 0x2,
        RIL_SUBADDRTYPE_MAX	= RIL_SUBADDRTYPE_USER
    } 	RILSUBADDRESSTYPE;

typedef struct RILSUBADDRESS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILSUBADDRESSTYPE dwType;
    WCHAR wszSubAddress[ 256 ];
    } 	RILSUBADDRESS;

typedef struct RILSUBADDRESS *LPRILSUBADDRESS;

typedef 
enum RILOPERATORNAMESPARAMMASK
    {
        RIL_PARAM_ON_LONGNAME	= 0x1,
        RIL_PARAM_ON_SHORTNAME	= 0x2,
        RIL_PARAM_ON_NUMNAME	= 0x4,
        RIL_PARAM_ON_COUNTRY_CODE	= 0x8,
        RIL_PARAM_ON_SYSTEMTYPE	= 0x10,
        RIL_PARAM_ON_ALL	= 0x1f
    } 	RILOPERATORNAMESPARAMMASK;

typedef 
enum RILSYSTEMTYPE
    {
        RIL_SYSTEMTYPE_NONE	= 0,
        RIL_SYSTEMTYPE_1XRTT	= 0x1,
        RIL_SYSTEMTYPE_EVDO	= 0x2,
        RIL_SYSTEMTYPE_GSM	= 0x4,
        RIL_SYSTEMTYPE_UMTS	= 0x8,
        RIL_SYSTEMTYPE_LTE	= 0x10,
        RIL_SYSTEMTYPE_TDSCDMA	= 0x20,
        RIL_SYSTEMTYPE_CDMA	= ( RIL_SYSTEMTYPE_1XRTT | RIL_SYSTEMTYPE_EVDO ) ,
        RIL_SYSTEMTYPE_GSMUMTS	= ( RIL_SYSTEMTYPE_GSM | RIL_SYSTEMTYPE_UMTS ) ,
        RIL_SYSTEMTYPE_GSMTDS	= ( RIL_SYSTEMTYPE_GSM | RIL_SYSTEMTYPE_TDSCDMA ) ,
        RIL_SYSTEMTYPE_GSMUMTSTDS	= ( RIL_SYSTEMTYPE_GSMUMTS | RIL_SYSTEMTYPE_TDSCDMA ) ,
        RIL_SYSTEMTYPE_3GPP	= ( RIL_SYSTEMTYPE_GSMUMTSTDS | RIL_SYSTEMTYPE_LTE ) ,
        RIL_SYSTEMTYPE_ALL	= 0x3f
    } 	RILSYSTEMTYPE;

typedef struct RILOPERATORNAMES
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwSystemType;
    WCHAR wszLongName[ 32 ];
    WCHAR wszShortName[ 16 ];
    WCHAR wszNumName[ 16 ];
    WCHAR wszCountryCode[ 8 ];
    } 	RILOPERATORNAMES;

typedef struct RILOPERATORNAMES *LPRILOPERATORNAMES;

typedef 
enum RILMSGDCSPARAMMASK
    {
        RIL_PARAM_MDCS_TYPE	= 0x1,
        RIL_PARAM_MDCS_FLAGS	= 0x2,
        RIL_PARAM_MDCS_MSGCLASS	= 0x4,
        RIL_PARAM_MDCS_ALPHABET	= 0x8,
        RIL_PARAM_MDCS_INDICATION	= 0x10,
        RIL_PARAM_MDCS_LANGUAGE	= 0x20,
        RIL_PARAM_MDCS_ALL	= 0x3f
    } 	RILMSGDCSPARAMMASK;

typedef 
enum RILMSGDCSTYPE
    {
        RIL_DCSTYPE_GENERAL	= 0x1,
        RIL_DCSTYPE_MSGWAIT	= 0x2,
        RIL_DCSTYPE_MSGCLASS	= 0x3,
        RIL_DCSTYPE_LANGUAGE	= 0x4,
        RIL_DCSTYPE_MAX	= RIL_DCSTYPE_LANGUAGE
    } 	RILMSGDCSTYPE;

typedef 
enum RILMSGDCSFLAGS
    {
        RIL_DCSFLAG_NONE	= 0,
        RIL_DCSFLAG_COMPRESSED	= 0x1,
        RIL_DCSFLAG_INDICATIONACTIVE	= 0x2,
        RIL_DCSFLAG_DISCARD	= 0x4,
        RIL_DCSFLAG_ALL	= 0x7
    } 	RILMSGDCSFLAGS;

typedef 
enum RILMSGDCSMSGCLASS
    {
        RIL_DCSMSGCLASS_0	= 0x1,
        RIL_DCSMSGCLASS_1	= 0x2,
        RIL_DCSMSGCLASS_2	= 0x3,
        RIL_DCSMSGCLASS_3	= 0x4,
        RIL_DCSMSGCLASS_MAX	= RIL_DCSMSGCLASS_3
    } 	RILMSGDCSMSGCLASS;

typedef 
enum RILMSGDCSALPHABET
    {
        RIL_DCSALPHABET_DEFAULT	= 0x1,
        RIL_DCSALPHABET_8BIT	= 0x2,
        RIL_DCSALPHABET_UCS2	= 0x3,
        RIL_DCSALPHABET_MAX	= RIL_DCSALPHABET_UCS2
    } 	RILMSGDCSALPHABET;

typedef 
enum RILMSGDCSINDICATION
    {
        RIL_DCSINDICATION_VOICEMAIL	= 0x1,
        RIL_DCSINDICATION_FAX	= 0x2,
        RIL_DCSINDICATION_EMAIL	= 0x3,
        RIL_DCSINDICATION_OTHER	= 0x4,
        RIL_DCSINDICATION_MAX	= RIL_DCSINDICATION_OTHER
    } 	RILMSGDCSINDICATION;

typedef 
enum RILDCSLANG
    {
        RIL_DCSLANG_None	= 0,
        RIL_DCSLANG_UNKNOWN	= 0x1,
        RIL_DCSLANG_GERMAN	= 0x2,
        RIL_DCSLANG_ENGLISH	= 0x4,
        RIL_DCSLANG_ITALIAN	= 0x8,
        RIL_DCSLANG_FRENCH	= 0x10,
        RIL_DCSLANG_SPANISH	= 0x20,
        RIL_DCSLANG_DUTCH	= 0x40,
        RIL_DCSLANG_SWEDISH	= 0x80,
        RIL_DCSLANG_DANISH	= 0x100,
        RIL_DCSLANG_PORTUGUESE	= 0x200,
        RIL_DCSLANG_FINNISH	= 0x400,
        RIL_DCSLANG_NORWEGIAN	= 0x800,
        RIL_DCSLANG_GREEK	= 0x1000,
        RIL_DCSLANG_TURKISH	= 0x2000,
        RIL_DCSLANG_HUNGARIAN	= 0x4000,
        RIL_DCSLANG_POLISH	= 0x8000,
        RIL_DCSLANG_CZECH	= 0x10000,
        RIL_DCSLANG_HEBREW	= 0x20000,
        RIL_DCSLANG_ARABIC	= 0x40000,
        RIL_DCSLANG_RUSSIAN	= 0x80000,
        RIL_DCSLANG_ICELANDIC	= 0x100000,
        RIL_DCSLANG_ALL	= 0x1fffff
    } 	RILDCSLANG;

typedef struct RILMSGDCS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILMSGDCSTYPE dwType;
    DWORD dwFlags;
    RILMSGDCSMSGCLASS dwMsgClass;
    RILMSGDCSALPHABET dwAlphabet;
    RILMSGDCSINDICATION dwIndication;
    DWORD dwLanguage;
    } 	RILMSGDCS;

typedef struct RILMSGDCS *LPRILMSGDCS;

typedef struct RILSYSTEMTIME
    {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
    } 	RILSYSTEMTIME;

typedef struct RILSYSTEMTIME *LPRILSYSTEMTIME;

typedef 
enum RILMESSAGEPARAMMASK
    {
        RIL_PARAM_M_SVCCTRADDRESS	= 0x1,
        RIL_PARAM_M_TYPE	= 0x2,
        RIL_PARAM_M_FLAGS	= 0x4,
        RIL_PARAM_M_ORIGADDRESS	= 0x8,
        RIL_PARAM_M_TGTRECIPADDRESS	= 0x10,
        RIL_PARAM_M_DESTADDRESS	= 0x20,
        RIL_PARAM_M_SCRECEIVETIME	= 0x40,
        RIL_PARAM_M_TGTSCRECEIVETIME	= 0x80,
        RIL_PARAM_M_TGTDISCHARGETIME	= 0x100,
        RIL_PARAM_M_PROTOCOLID	= 0x200,
        RIL_PARAM_M_DATACODING	= 0x800,
        RIL_PARAM_M_TGTDLVSTATUS	= 0x1000,
        RIL_PARAM_M_VPFORMAT	= 0x4000,
        RIL_PARAM_M_VP	= 0x8000,
        RIL_PARAM_M_GEOSCOPE	= 0x20000,
        RIL_PARAM_M_MSGCODE	= 0x40000,
        RIL_PARAM_M_UPDATENUMBER	= 0x80000,
        RIL_PARAM_M_ID	= 0x100000,
        RIL_PARAM_M_TOTALPAGES	= 0x200000,
        RIL_PARAM_M_PAGENUMBER	= 0x400000,
        RIL_PARAM_M_HDRLENGTH	= 0x800000,
        RIL_PARAM_M_SERIALNUMBER	= 0x800000,
        RIL_PARAM_M_MSGLENGTH	= 0x1000000,
        RIL_PARAM_M_HDR	= 0x4000000,
        RIL_PARAM_M_MSG	= 0x8000000,
        RIL_PARAM_M_WARNINGTYPE	= 0x20000000,
        RIL_PARAM_M_EUSERALERT	= 0x40000000,
        RIL_PARAM_M_POPUP	= 0x80000000,
        RIL_PARAM_M_MSGID	= 0x20000000,
        RIL_PARAM_M_ORIGSUBADDRESS	= 0x40000000,
        RIL_PARAM_M_DESTSUBADDRESS	= 0x80000000,
        RIL_PARAM_M_DIGIT	= 0x10000,
        RIL_PARAM_M_PRIVACY	= 0x100,
        RIL_PARAM_M_PRIORITY	= 0x200,
        RIL_PARAM_M_TELESERVICE	= 0x400,
        RIL_PARAM_M_LANG	= 0x800,
        RIL_PARAM_M_VALIDITYPERIODABS	= 0x1000,
        RIL_PARAM_M_VALIDITYPERIODREL	= 0x2000,
        RIL_PARAM_M_DEFERREDDELTIMEABS	= 0x4000,
        RIL_PARAM_M_DEFERREDDELTIMEREL	= 0x8000,
        RIL_PARAM_M_ENCODING	= 0x20000,
        RIL_PARAM_M_USERRESPONSECODE	= 0x40000,
        RIL_PARAM_M_DISPLAYMODE	= 0x80000,
        RIL_PARAM_M_CALLBACKNUM	= 0x10,
        RIL_PARAM_M_NUMMSGS	= 0x80,
        RIL_PARAM_M_CAUSECODE	= 0x100000,
        RIL_PARAM_M_REPLYSEQNUMBER	= 0x200000,
        RIL_PARAM_M_SERVICEID	= 0x200000,
        RIL_PARAM_M_USERACK	= 0x400000,
        RIL_PARAM_M_DELIVERYACK	= 0x800000,
        RIL_PARAM_M_ALERTONMSGDELIVERY	= 0x800000,
        RIL_PARAM_M_HDRLENGTHCDMA	= 0x2000000,
        RIL_PARAM_M_MSGSTATUSTYPE	= 0x10000000,
        RIL_PARAM_M_BEARERREPLYACK	= 0x10000000,
        RIL_PARAM_M_ALL_IN_DELIVER	= ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_FLAGS )  | RIL_PARAM_M_ORIGADDRESS )  | RIL_PARAM_M_PROTOCOLID )  | RIL_PARAM_M_DATACODING )  | RIL_PARAM_M_SCRECEIVETIME )  | RIL_PARAM_M_HDRLENGTH )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_HDR )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_IN_STATUS	= ( ( ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_FLAGS )  | RIL_PARAM_M_MSGID )  | RIL_PARAM_M_TGTRECIPADDRESS )  | RIL_PARAM_M_TGTSCRECEIVETIME )  | RIL_PARAM_M_TGTDISCHARGETIME )  | RIL_PARAM_M_TGTDLVSTATUS )  | RIL_PARAM_M_PROTOCOLID )  | RIL_PARAM_M_DATACODING )  | RIL_PARAM_M_HDRLENGTH )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_HDR )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_OUT_SUBMIT	= ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_FLAGS )  | RIL_PARAM_M_DESTADDRESS )  | RIL_PARAM_M_PROTOCOLID )  | RIL_PARAM_M_DATACODING )  | RIL_PARAM_M_VPFORMAT )  | RIL_PARAM_M_VP )  | RIL_PARAM_M_HDRLENGTH )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_HDR )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_BC_GENERAL	= ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_GEOSCOPE )  | RIL_PARAM_M_MSGCODE )  | RIL_PARAM_M_UPDATENUMBER )  | RIL_PARAM_M_ID )  | RIL_PARAM_M_DATACODING )  | RIL_PARAM_M_TOTALPAGES )  | RIL_PARAM_M_PAGENUMBER )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_IN_IS637DELIVER	= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_MSGID )  | RIL_PARAM_M_TELESERVICE )  | RIL_PARAM_M_DISPLAYMODE )  | RIL_PARAM_M_USERACK )  | RIL_PARAM_M_ORIGADDRESS )  | RIL_PARAM_M_ORIGSUBADDRESS )  | RIL_PARAM_M_SCRECEIVETIME )  | RIL_PARAM_M_PRIORITY )  | RIL_PARAM_M_PRIVACY )  | RIL_PARAM_M_CALLBACKNUM )  | RIL_PARAM_M_NUMMSGS )  | RIL_PARAM_M_VALIDITYPERIODABS )  | RIL_PARAM_M_LANG )  | RIL_PARAM_M_ENCODING )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_OUT_IS637SUBMIT	= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_MSGID )  | RIL_PARAM_M_TELESERVICE )  | RIL_PARAM_M_DISPLAYMODE )  | RIL_PARAM_M_DESTADDRESS )  | RIL_PARAM_M_DESTSUBADDRESS )  | RIL_PARAM_M_DIGIT )  | RIL_PARAM_M_BEARERREPLYACK )  | RIL_PARAM_M_PRIORITY )  | RIL_PARAM_M_PRIVACY )  | RIL_PARAM_M_CALLBACKNUM )  | RIL_PARAM_M_USERACK )  | RIL_PARAM_M_DELIVERYACK )  | RIL_PARAM_M_VALIDITYPERIODABS )  | RIL_PARAM_M_VALIDITYPERIODREL )  | RIL_PARAM_M_DEFERREDDELTIMEABS )  | RIL_PARAM_M_DEFERREDDELTIMEREL )  | RIL_PARAM_M_LANG )  | RIL_PARAM_M_ENCODING )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_MSG ) ,
        RIL_PARAM_M_ALL_IN_IS637STATUS	= ( ( ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_MSGID )  | RIL_PARAM_M_ORIGADDRESS )  | RIL_PARAM_M_ORIGSUBADDRESS )  | RIL_PARAM_M_SCRECEIVETIME )  | RIL_PARAM_M_CAUSECODE )  | RIL_PARAM_M_REPLYSEQNUMBER )  | RIL_PARAM_M_LANG )  | RIL_PARAM_M_ENCODING )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_MSG )  | RIL_PARAM_M_USERRESPONSECODE )  | RIL_PARAM_M_MSGSTATUSTYPE ) ,
        RIL_PARAM_M_ALL_OUT_IS637STATUS	= ( ( ( ( ( ( ( ( ( ( RIL_PARAM_M_TYPE | RIL_PARAM_M_MSGID )  | RIL_PARAM_M_DESTADDRESS )  | RIL_PARAM_M_DESTSUBADDRESS )  | RIL_PARAM_M_REPLYSEQNUMBER )  | RIL_PARAM_M_LANG )  | RIL_PARAM_M_ENCODING )  | RIL_PARAM_M_MSGLENGTH )  | RIL_PARAM_M_MSG )  | RIL_PARAM_M_USERRESPONSECODE )  | RIL_PARAM_M_DIGIT ) 
    } 	RILMESSAGEPARAMMASK;

typedef 
enum RILMSGPROTOCOLID
    {
        RIL_MSGPROTOCOL_UNKNOWN	= 0x1,
        RIL_MSGPROTOCOL_SMETOSME	= 0x2,
        RIL_MSGPROTOCOL_IMPLICIT	= 0x3,
        RIL_MSGPROTOCOL_TELEX	= 0x4,
        RIL_MSGPROTOCOL_TELEFAX_GROUP3	= 0x5,
        RIL_MSGPROTOCOL_TELEFAX_GROUP4	= 0x6,
        RIL_MSGPROTOCOL_VOICEPHONE	= 0x7,
        RIL_MSGPROTOCOL_ERMES	= 0x8,
        RIL_MSGPROTOCOL_PAGING	= 0x9,
        RIL_MSGPROTOCOL_VIDEOTEX	= 0xa,
        RIL_MSGPROTOCOL_TELETEX	= 0xb,
        RIL_MSGPROTOCOL_TELETEX_PSPDN	= 0xc,
        RIL_MSGPROTOCOL_TELETEX_CSPDN	= 0xd,
        RIL_MSGPROTOCOL_TELETEX_PSTN	= 0xe,
        RIL_MSGPROTOCOL_TELETEX_ISDN	= 0xf,
        RIL_MSGPROTOCOL_UCI	= 0x10,
        RIL_MSGPROTOCOL_MSGHANDLING	= 0x11,
        RIL_MSGPROTOCOL_X400	= 0x12,
        RIL_MSGPROTOCOL_EMAIL	= 0x13,
        RIL_MSGPROTOCOL_SCSPECIFIC1	= 0x14,
        RIL_MSGPROTOCOL_SCSPECIFIC2	= 0x15,
        RIL_MSGPROTOCOL_SCSPECIFIC3	= 0x16,
        RIL_MSGPROTOCOL_SCSPECIFIC4	= 0x17,
        RIL_MSGPROTOCOL_SCSPECIFIC5	= 0x18,
        RIL_MSGPROTOCOL_SCSPECIFIC6	= 0x19,
        RIL_MSGPROTOCOL_SCSPECIFIC7	= 0x1a,
        RIL_MSGPROTOCOL_GSMSTATION	= 0x1b,
        RIL_MSGPROTOCOL_SM_TYPE0	= 0x1c,
        RIL_MSGPROTOCOL_RSM_TYPE1	= 0x1d,
        RIL_MSGPROTOCOL_RSM_TYPE2	= 0x1e,
        RIL_MSGPROTOCOL_RSM_TYPE3	= 0x1f,
        RIL_MSGPROTOCOL_RSM_TYPE4	= 0x20,
        RIL_MSGPROTOCOL_RSM_TYPE5	= 0x21,
        RIL_MSGPROTOCOL_RSM_TYPE6	= 0x22,
        RIL_MSGPROTOCOL_RSM_TYPE7	= 0x23,
        RIL_MSGPROTOCOL_RETURNCALL	= 0x24,
        RIL_MSGPROTOCOL_ME_DOWNLOAD	= 0x25,
        RIL_MSGPROTOCOL_DEPERSONALIZATION	= 0x26,
        RIL_MSGPROTOCOL_UICC_DOWNLOAD	= 0x27,
        RIL_MSGPROTOCOL_MAX	= RIL_MSGPROTOCOL_UICC_DOWNLOAD
    } 	RILMSGPROTOCOLID;

typedef struct RILMSGINDELIVER
    {
    RILADDRESS raOrigAddress;
    RILMSGPROTOCOLID dwProtocolID;
    RILMSGDCS rmdDataCoding;
    RILSYSTEMTIME stSCReceiveTime;
    DWORD dwMsgID;
    DWORD cbHdrLength;
    DWORD cchMsgLength;
    BYTE rgbHdr[ 256 ];
    BYTE rgbMsg[ 512 ];
    } 	RILMSGINDELIVER;

typedef struct RILMSGINDELIVER *LPRILMSGINDELIVER;

typedef 
enum RILMSGINSTATUSTGTDLVSTATUS
    {
        RIL_MSGDLVSTATUS_RECEIVEDBYSME	= 0x1,
        RIL_MSGDLVSTATUS_FORWARDEDTOSME	= 0x2,
        RIL_MSGDLVSTATUS_REPLACEDBYSC	= 0x3,
        RIL_MSGDLVSTATUS_CONGESTION_TRYING	= 0x4,
        RIL_MSGDLVSTATUS_SMEBUSY_TRYING	= 0x5,
        RIL_MSGDLVSTATUS_SMENOTRESPONDING_TRYING	= 0x6,
        RIL_MSGDLVSTATUS_SVCREJECTED_TRYING	= 0x7,
        RIL_MSGDLVSTATUS_QUALITYUNAVAIL_TRYING	= 0x8,
        RIL_MSGDLVSTATUS_SMEERROR_TRYING	= 0x9,
        RIL_MSGDLVSTATUS_CONGESTION	= 0xa,
        RIL_MSGDLVSTATUS_SMEBUSY	= 0xb,
        RIL_MSGDLVSTATUS_SMENOTRESPONDING	= 0xc,
        RIL_MSGDLVSTATUS_SVCREJECTED	= 0xd,
        RIL_MSGDLVSTATUS_QUALITYUNAVAIL_TEMP	= 0xe,
        RIL_MSGDLVSTATUS_SMEERROR	= 0xf,
        RIL_MSGDLVSTATUS_REMOTEPROCERROR	= 0x10,
        RIL_MSGDLVSTATUS_INCOMPATIBLEDEST	= 0x11,
        RIL_MSGDLVSTATUS_CONNECTIONREJECTED	= 0x12,
        RIL_MSGDLVSTATUS_NOTOBTAINABLE	= 0x13,
        RIL_MSGDLVSTATUS_NOINTERNETWORKING	= 0x14,
        RIL_MSGDLVSTATUS_VPEXPIRED	= 0x15,
        RIL_MSGDLVSTATUS_DELETEDBYORIGSME	= 0x16,
        RIL_MSGDLVSTATUS_DELETEDBYSC	= 0x17,
        RIL_MSGDLVSTATUS_NOLONGEREXISTS	= 0x18,
        RIL_MSGDLVSTATUS_QUALITYUNAVAIL	= 0x19,
        RIL_MSGDLVSTATUS_RESERVED_COMPLETED	= 0x1a,
        RIL_MSGDLVSTATUS_RESERVED_TRYING	= 0x1b,
        RIL_MSGDLVSTATUS_RESERVED_ERROR	= 0x1c,
        RIL_MSGDLVSTATUS_RESERVED_TMPERROR	= 0x1d,
        RIL_MSGDLVSTATUS_SCSPECIFIC_COMPLETED	= 0x1e,
        RIL_MSGDLVSTATUS_SCSPECIFIC_TRYING	= 0x1f,
        RIL_MSGDLVSTATUS_SCSPECIFIC_ERROR	= 0x20,
        RIL_MSGDLVSTATUS_SCSPECIFIC_TMPERROR	= 0x21,
        RIL_MSGDLVSTATUS_MAX	= RIL_MSGDLVSTATUS_SCSPECIFIC_TMPERROR
    } 	RILMSGINSTATUSTGTDLVSTATUS;

typedef struct RILMSGINSTATUS
    {
    DWORD dwMsgID;
    RILADDRESS raTgtRecipAddress;
    RILSYSTEMTIME stTgtSCReceiveTime;
    RILSYSTEMTIME stTgtDischargeTime;
    DWORD dwReserved;
    RILMSGINSTATUSTGTDLVSTATUS dwTgtDlvStatus;
    RILMSGPROTOCOLID dwProtocolID;
    RILMSGDCS rmdDataCoding;
    DWORD cbHdrLength;
    DWORD cchMsgLength;
    BYTE rgbHdr[ 256 ];
    BYTE rgbMsg[ 512 ];
    } 	RILMSGINSTATUS;

typedef struct RILMSGINSTATUS *LPRILMSGINSTATUS;

typedef 
enum RILMSGOUTSUBMITVPFORMAT
    {
        RIL_MSGVP_NONE	= 0,
        RIL_MSGVP_RELATIVE	= 0x1,
        RIL_MSGVP_ENHANCED	= 0x2,
        RIL_MSGVP_ABSOLUTE	= 0x3,
        RIL_MSGVP_MAX	= RIL_MSGVP_ABSOLUTE
    } 	RILMSGOUTSUBMITVPFORMAT;

typedef struct RILMSGOUTSUBMIT
    {
    RILADDRESS raDestAddress;
    RILMSGPROTOCOLID dwProtocolID;
    RILMSGDCS rmdDataCoding;
    RILMSGOUTSUBMITVPFORMAT dwVPFormat;
    RILSYSTEMTIME stVP;
    DWORD dwMsgID;
    DWORD cbHdrLength;
    DWORD cchMsgLength;
    BYTE rgbHdr[ 256 ];
    BYTE rgbMsg[ 512 ];
    } 	RILMSGOUTSUBMIT;

typedef struct RILMSGOUTSUBMIT *LPRILMSGOUTSUBMIT;

typedef 
enum RILMSGBCGENERALWARNINGTYPE
    {
        RIL_WARNINGTYPE_EARTHQUAKE	= 0,
        RIL_WARNINGTYPE_TSUNAMI	= 0x1,
        RIL_WARNINGTYPE_EARTHQUAKETSUNAMI	= 0x2,
        RIL_WARNINGTYPE_TEST	= 0x3,
        RIL_WARNINGTYPE_OTHER	= 0x4,
        RIL_WARNINGTYPE_RESERVED	= 0x5,
        RIL_WARNINGTYPE_MAX	= RIL_WARNINGTYPE_RESERVED
    } 	RILMSGBCGENERALWARNINGTYPE;

typedef 
enum RILGEOSCOPE
    {
        RIL_GEOSCOPE_NONE	= 0,
        RIL_GEOSCOPE_CELL_IMMEDIATE	= 0x1,
        RIL_GEOSCOPE_LOCATIONAREA	= 0x2,
        RIL_GEOSCOPE_PLMN	= 0x3,
        RIL_GEOSCOPE_CELL	= 0x4,
        RIL_GEOSCOPE_MAX	= RIL_GEOSCOPE_CELL
    } 	RILGEOSCOPE;

typedef struct RILMSGBCGENERAL
    {
    RILGEOSCOPE dwGeoScope;
    DWORD dwMsgCode;
    DWORD dwUpdateNumber;
    DWORD dwID;
    DWORD dwSerialNumber;
    RILMSGDCS rmdDataCoding;
    DWORD dwTotalPages;
    DWORD dwPageNumber;
    RILMSGBCGENERALWARNINGTYPE dwWarningType;
    BOOL bEmergencyUserAlert;
    BOOL bMessagePopup;
    RILSYSTEMTIME stSCReceiveTime;
    BYTE digSig[ 43 ];
    DWORD cchMsgLength;
    BYTE rgbMsg[ 512 ];
    } 	RILMSGBCGENERAL;

typedef struct RILMSGBCGENERAL *LPRILMSGBCGENERAL;

typedef 
enum RILMSGCDMAMSGENCODING
    {
        RIL_MSGCODING_UNKNOWN	= 0,
        RIL_MSGCODING_7BITASCII	= 0x2,
        RIL_MSGCODING_UNICODE	= 0x3,
        RIL_MSGCODING_7BITGSM	= 0x4,
        RIL_MSGCODING_8BITGSM	= 0x5,
        RIL_MSGCODING_OCTET	= 0x6,
        RIL_MSGCODING_IA5	= 0x7,
        RIL_MSGCODING_JIS	= 0x8,
        RIL_MSGCODING_KOREAN	= 0x9,
        RIL_MSGCODING_LATIN_HEBREW	= 0xa,
        RIL_MSGCODING_LATIN	= 0xb,
        RIL_MSGCODING_MAX	= RIL_MSGCODING_LATIN
    } 	RILMSGCDMAMSGENCODING;

typedef 
enum RILMSGCDMAMSGSTATUSTYPE
    {
        RIL_MSGSTATUSTYPE_BEARERACK	= 0x1,
        RIL_MSGSTATUSTYPE_DELIVERYACK	= 0x2,
        RIL_MSGSTATUSTYPE_USERACK	= 0x3,
        RIL_MSGSTATUSTYPE_READACK	= 0x4,
        RIL_MSGSTATUSTYPE_MAX	= RIL_MSGSTATUSTYPE_READACK
    } 	RILMSGCDMAMSGSTATUSTYPE;

typedef 
enum RILMSGCDMALANGUAGE
    {
        RIL_MSGCDMALANG_UNKNOWN	= 0,
        RIL_MSGCDMALANG_ENGLISH	= 0x1,
        RIL_MSGCDMALANG_FRENCH	= 0x2,
        RIL_MSGCDMALANG_SPANISH	= 0x3,
        RIL_MSGCDMALANG_JAPANESE	= 0x4,
        RIL_MSGCDMALANG_KOREAN	= 0x5,
        RIL_MSGCDMALANG_CHINESE	= 0x6,
        RIL_MSGCDMALANG_HEBREW	= 0x7,
        RIL_MSGCDMALANG_MAX	= RIL_MSGCDMALANG_HEBREW
    } 	RILMSGCDMALANGUAGE;

typedef struct RILMSGIS637INSTATUS
    {
    RILADDRESS raOrigAddress;
    RILSUBADDRESS rsaOrigSubaddr;
    RILSYSTEMTIME stSCReceiveTime;
    DWORD dwCauseCode;
    DWORD dwReplySeqNumber;
    DWORD dwUserResponseCode;
    RILMSGCDMAMSGSTATUSTYPE dwMsgStatusType;
    DWORD dwMsgID;
    RILMSGCDMALANGUAGE dwMsgLang;
    RILMSGCDMAMSGENCODING dwMsgEncoding;
    DWORD cchMsgLength;
    BYTE rgbMsg[ 512 ];
    } 	RILMSGIS637INSTATUS;

typedef struct RILMSGIS637INSTATUS *LPRILMSGIS637INSTATUS;

typedef 
enum RILMSGCDMAMSGPRIORITY
    {
        RIL_MSGPRIORITY_NORMAL	= 0x1,
        RIL_MSGPRIORITY_HIGH	= 0x2,
        RIL_MSGPRIORITY_URGENT	= 0x3,
        RIL_MSGPRIORITY_EMERGENCY	= 0x4,
        RIL_MSGPRIORITY_MAX	= RIL_MSGPRIORITY_EMERGENCY
    } 	RILMSGCDMAMSGPRIORITY;

typedef 
enum RILMSGCDMAMSGPRIVACY
    {
        RIL_MSGPRIVACYCLASS_NOTRESTRICTED	= 0x1,
        RIL_MSGPRIVACYCLASS_RESTRICTED	= 0x2,
        RIL_MSGPRIVACYCLASS_CONFIDENTIAL	= 0x3,
        RIL_MSGPRIVACYCLASS_SECRET	= 0x4,
        RIL_MSGPRIVACYCLASS_MAX	= RIL_MSGPRIVACYCLASS_SECRET
    } 	RILMSGCDMAMSGPRIVACY;

typedef 
enum RILMSGCDMAMSGDISPLAYMODE
    {
        RIL_MSGDISPLAYMODE_IMMEDIATE	= 0x1,
        RIL_MSGDISPLAYMODE_MOBILEDEFAULT	= 0x2,
        RIL_MSGDISPLAYMODE_USERDEFAULT	= 0x3,
        RIL_MSGDISPLAYMODE_MAX	= RIL_MSGDISPLAYMODE_USERDEFAULT
    } 	RILMSGCDMAMSGDISPLAYMODE;

typedef 
enum RILMSGCDMATELESERVICE
    {
        RIL_MSGTELESERVICE_PAGING_OLD	= 0x1,
        RIL_MSGTELESERVICE_MESSAGING_OLD	= 0x2,
        RIL_MSGTELESERVICE_VOICEMAIL_OLD	= 0x3,
        RIL_MSGTELESERVICE_WAP_OLD	= 0x4,
        RIL_MSGTELESERVICE_BROADCAST_OLD	= 0x5,
        RIL_MSGTELESERVICE_SELFREG_OLD	= 0x6,
        RIL_MSGTELESERVICE_PAGING	= 4097,
        RIL_MSGTELESERVICE_MESSAGING	= 4098,
        RIL_MSGTELESERVICE_WEMT	= 4101,
        RIL_MSGTELESERVICE_VOICEMAIL_VMN_95	= 4099,
        RIL_MSGTELESERVICE_VOICEMAIL_MWI	= 0x40000,
        RIL_MSGTELESERVICE_WAP	= 4100,
        RIL_MSGTELESERVICE_WAP_CT_MMS	= 65002,
        RIL_MSGTELESERVICE_WAP_CT_OMA	= 65009,
        RIL_MSGTELESERVICE_BROADCAST	= 0x50000,
        RIL_MSGTELESERVICE_SELFREG	= 0x40000
    } 	RILMSGCDMATELESERVICE;

typedef 
enum RILMSGCDMABROADCASTSERVICEID
    {
        RIL_1xBROADCAST_CMAS_PRESIDENTIAL	= 0x1000,
        RIL_1xBROADCAST_CMAS_EXTREME	= 0x1001,
        RIL_1xBROADCAST_CMAS_SEVERE	= 0x1002,
        RIL_1xBROADCAST_CMAS_AMBER	= 0x1003,
        RIL_1xBROADCAST_CMAS_TEST	= 0x1004
    } 	RILMSGCDMABROADCASTSERVICEID;

typedef struct RILMSGCDMAINDELIVER
    {
    RILADDRESS raOrigAddress;
    RILSUBADDRESS rsaOrigSubaddr;
    RILSYSTEMTIME stSCReceiveTime;
    RILSYSTEMTIME stValidityPeriodAbs;
    RILSYSTEMTIME stValidityPeriodRel;
    RILSYSTEMTIME stDeferredDelTimeAbs;
    RILSYSTEMTIME stDeferredDelTimeRel;
    DWORD dwNumMsgs;
    RILADDRESS raCallBackNumber;
    RILMSGCDMAMSGPRIORITY dwMsgPriority;
    DWORD dwAlertOnMsgDelivery;
    RILMSGCDMAMSGPRIVACY dwMsgPrivacy;
    BOOL bUserAckRequest;
    RILMSGCDMAMSGDISPLAYMODE dwMsgDisplayMode;
    DWORD dwTeleservice;
    DWORD dwServiceID;
    DWORD dwMsgID;
    RILMSGCDMALANGUAGE dwMsgLang;
    RILMSGCDMAMSGENCODING dwMsgEncoding;
    DWORD cbHdrLength;
    DWORD cchMsgLength;
    BYTE rgbHdr[ 140 ];
    BYTE rgbMsg[ 256 ];
    } 	RILMSGCDMAINDELIVER;

typedef struct RILMSGCDMAINDELIVER *LPRILMSGCDMAINDELIVER;

typedef struct RILMSGCDMAOUTSUBMIT
    {
    RILADDRESS raDestAddress;
    RILSUBADDRESS rsaDestSubaddr;
    BOOL bDigit;
    RILSYSTEMTIME stValidityPeriodAbs;
    RILSYSTEMTIME stValidityPeriodRel;
    RILSYSTEMTIME stDeferredDelTimeAbs;
    RILSYSTEMTIME stDeferredDelTimeRel;
    BOOL bDeliveryAckRequest;
    BOOL bUserAckRequest;
    BOOL bBearerReplyRequest;
    DWORD dwReplySeqNumber;
    RILMSGCDMAMSGDISPLAYMODE dwMsgDisplayMode;
    RILADDRESS raCallBackNumber;
    RILMSGCDMAMSGPRIORITY dwMsgPriority;
    RILMSGCDMAMSGPRIVACY dwMsgPrivacy;
    DWORD dwTeleservice;
    DWORD dwMsgID;
    RILMSGCDMALANGUAGE dwMsgLang;
    RILMSGCDMAMSGENCODING dwMsgEncoding;
    DWORD cbHdrLength;
    DWORD cchMsgLength;
    BYTE rgbHdr[ 140 ];
    BYTE rgbMsg[ 256 ];
    } 	RILMSGCDMAOUTSUBMIT;

typedef struct RILMSGCDMAOUTSUBMIT *LPRILMSGCDMAOUTSUBMIT;

typedef 
enum RILMSGCLASS
    {
        RIL_MSGCLASS_NONE	= 0,
        RIL_MSGCLASS_INCOMING	= 0x10000,
        RIL_MSGCLASS_OUTGOING	= 0x20000,
        RIL_MSGCLASS_BROADCAST	= 0x40000,
        RIL_MSGCLASS_ALL	= 0x70000
    } 	RILMSGCLASS;

typedef 
enum RILMESSAGETYPE
    {
        RIL_MSGTYPE_IN_DELIVER	= ( 0x1 | RIL_MSGCLASS_INCOMING ) ,
        RIL_MSGTYPE_IN_STATUS	= ( 0x2 | RIL_MSGCLASS_INCOMING ) ,
        RIL_MSGTYPE_IN_IS637STATUS	= ( 0x8 | RIL_MSGCLASS_INCOMING ) ,
        RIL_MSGTYPE_IN_CDMADELIVER	= ( 0x20 | RIL_MSGCLASS_INCOMING ) ,
        RIL_MSGTYPE_OUT_SUBMIT	= ( 0x1 | RIL_MSGCLASS_OUTGOING ) ,
        RIL_MSGTYPE_OUT_CDMASUBMIT	= ( 0x20 | RIL_MSGCLASS_OUTGOING ) ,
        RIL_MSGTYPE_BC_GENERAL	= ( 0x2 | RIL_MSGCLASS_BROADCAST ) 
    } 	RILMESSAGETYPE;

typedef 
enum RILMESSAGEFLAGS
    {
        RIL_MSGFLAG_NONE	= 0,
        RIL_MSGFLAG_MORETOSEND	= 0x1,
        RIL_MSGFLAG_REPLYPATH	= 0x2,
        RIL_MSGFLAG_HEADER	= 0x4,
        RIL_MSGFLAG_REJECTDUPS	= 0x8,
        RIL_MSGFLAG_STATUSREPORTRETURNED	= 0x10,
        RIL_MSGFLAG_STATUSREPORTREQUESTED	= 0x20,
        RIL_MSGFLAG_CAUSEDBYCOMMAND	= 0x40,
        RIL_MSGFLAG_ALL	= 0x7f
    } 	RILMESSAGEFLAGS;

typedef struct RILMESSAGE
    {
    DWORD cbSize;
    DWORD dwParams;
    RILADDRESS raSvcCtrAddress;
    RILMESSAGETYPE dwType;
    DWORD dwFlags;
    /* [switch_is] */ /* [switch_type] */ union RILMSGUNION
        {
        /* [case()] */ RILMSGINDELIVER unMsgInDeliver;
        /* [case()] */ RILMSGINSTATUS unMsgInStatus;
        /* [case()] */ RILMSGOUTSUBMIT unMsgOutSubmit;
        /* [case()] */ RILMSGBCGENERAL unMsgBcGeneral;
        /* [case()] */ RILMSGIS637INSTATUS unMsgIS637InStatus;
        /* [case()] */ RILMSGCDMAINDELIVER unMsgCDMAInDeliver;
        /* [case()] */ RILMSGCDMAOUTSUBMIT unMsgCDMAOutSubmit;
        } 	msgUnion;
    } 	RILMESSAGE;

typedef struct RILMESSAGE *LPRILMESSAGE;

typedef struct RILUICCFILEPATH
    {
    HUICCAPP hUiccApp;
    DWORD dwFilePathLen;
    WORD wFilePath[ 8 ];
    } 	RILUICCFILEPATH;

typedef struct RILUICCFILEPATH *LPRILUICCFILEPATH;

typedef 
enum RILUICCKEYREF
    {
        RIL_UICCKEYREF_ALW	= 0,
        RIL_UICCKEYREF_PIN1	= 0x1,
        RIL_UICCKEYREF_UPIN	= 0x10,
        RIL_UICCKEYREF_PIN2	= 0x81,
        RIL_UICCKEYREF_NEV	= 0xff
    } 	RILUICCKEYREF;

typedef struct RILUICCLOCK
    {
    HUICCAPP hUiccApp;
    DWORD dwKeyRef;
    } 	RILUICCLOCK;

typedef struct RILUICCLOCK *LPRILUICCLOCK;

typedef struct RILUICCLOCKCREDENTIAL
    {
    RILUICCLOCK rilUiccLock;
    char szPassword[ 256 ];
    } 	RILUICCLOCKCREDENTIAL;

typedef struct RILUICCLOCKCREDENTIAL *LPRILUICCLOCKCREDENTIAL;

typedef 
enum RILCALLDISCONNECTDETAILSDISCONNECTGROUP
    {
        RIL_CD_UNKNOWN_CAUSE	= 0,
        RIL_CD_AS_CAUSE	= 0x1,
        RIL_CD_3GPP_NETWORK_CAUSE	= 0x2,
        RIL_CD_3GPP2_VENDOR_CAUSE	= 0x3,
        RIL_CD_OTHER_CAUSE	= 0x4,
        RIL_CD_3GPP_REJECT_CAUSE	= 0x5,
        RIL_CD_IMS_SIP_CAUSE	= 0x6,
        RIL_CD_CAUSE_MAX	= RIL_CD_IMS_SIP_CAUSE
    } 	RILCALLDISCONNECTDETAILSDISCONNECTGROUP;

typedef 
enum RILCALLDISCONNECTDETAILSASCODE
    {
        RIL_CD_PHYSICAL_LAYER	= 0x1,
        RIL_CD_L2	= 0x2,
        RIL_CD_L3	= 0x3,
        RIL_CD_LAYER_MAX	= RIL_CD_L3
    } 	RILCALLDISCONNECTDETAILSASCODE;

typedef 
enum RIL3GPPCALLCONTROLCAUSECODE
    {
        RIL_3GPPCCCAUSE_UNASSIGNED_NUMBER	= 1,
        RIL_3GPPCCCAUSE_NO_ROUTE_TO_DESTINATION	= 3,
        RIL_3GPPCCCAUSE_CHANNEL_UNACCEPTABLE	= 6,
        RIL_3GPPCCCAUSE_OPERATOR_DETERMINED_BARRING	= 8,
        RIL_3GPPCCCAUSE_NORMAL_CALL_CLEARING	= 16,
        RIL_3GPPCCCAUSE_USER_BUSY	= 17,
        RIL_3GPPCCCAUSE_NO_USER_RESPONDING	= 18,
        RIL_3GPPCCCAUSE_USER_ALERTING_NO_ANSWER	= 19,
        RIL_3GPPCCCAUSE_CALL_REJECTED	= 21,
        RIL_3GPPCCCAUSE_NUMBER_CHANGED	= 22,
        RIL_3GPPCCCAUSE_PREEMPTION	= 25,
        RIL_3GPPCCCAUSE_DESTINATION_OUT_OF_ORDER	= 27,
        RIL_3GPPCCCAUSE_INVALID_NUMBER_FORMAT	= 28,
        RIL_3GPPCCCAUSE_FACILITY_REJECTED	= 29,
        RIL_3GPPCCCAUSE_RESPONSE_TO_STATUS_ENQUIRY	= 30,
        RIL_3GPPCCCAUSE_NORMAL_UNSPECIFIED	= 31,
        RIL_3GPPCCCAUSE_NO_CHANNEL_AVAILABLE	= 34,
        RIL_3GPPCCCAUSE_NETWORK_OUT_OF_ORDER	= 38,
        RIL_3GPPCCCAUSE_TEMPORARY_FAILURE	= 41,
        RIL_3GPPCCCAUSE_CONGESTION	= 42,
        RIL_3GPPCCCAUSE_ACCESS_INFORMATION_DISCARDED	= 43,
        RIL_3GPPCCCAUSE_REQUESTED_CHANNEL_NOT_AVAILABLE	= 44,
        RIL_3GPPCCCAUSE_RESOURCE_UNAVAILABLE_UNSPECIFIED	= 47,
        RIL_3GPPCCCAUSE_QOS_UNAVAILABLE	= 49,
        RIL_3GPPCCCAUSE_FACILITY_NOT_SUBSCRIBED	= 50,
        RIL_3GPPCCCAUSE_INCOMING_CALLS_BARRED_IN_CUG	= 55,
        RIL_3GPPCCCAUSE_BEARER_CAPABILITY_NOT_AUTHORIZED	= 57,
        RIL_3GPPCCCAUSE_BEARER_CAPABILITY_NOT_AVAILABLE	= 58,
        RIL_3GPPCCCAUSE_SVC_NOT_AVAILABLE_UNSPECIFIED	= 63,
        RIL_3GPPCCCAUSE_BEARER_SERVICE_NOT_IMPLEMENTED	= 65,
        RIL_3GPPCCCAUSE_ACM_NOT_LESS_THAN_ACMMAX	= 68,
        RIL_3GPPCCCAUSE_FACILITY_NOT_IMPLEMENTED	= 69,
        RIL_3GPPCCCAUSE_ONLY_RESTRICTED_DIGITAL_BEARER	= 70,
        RIL_3GPPCCCAUSE_SVC_NOT_IMPLEMENTED_UNSPECIFIED	= 79,
        RIL_3GPPCCCAUSE_INVALID_TRANSACTION_ID	= 81,
        RIL_3GPPCCCAUSE_USER_NOT_MEMBER_OF_CUG	= 87,
        RIL_3GPPCCCAUSE_INCOMPATIBLE_DESTINATION	= 88,
        RIL_3GPPCCCAUSE_SEMANTICALLY_INCORRECT_MESSAGE	= 95,
        RIL_3GPPCCCAUSE_INVALID_MANDATORY_FUNCTION	= 96,
        RIL_3GPPCCCAUSE_MESSAGE_TYPE_NOT_IMPLEMENTED	= 97,
        RIL_3GPPCCCAUSE_MESSAGE_TYPE_NOT_COMPATIBLE	= 98,
        RIL_3GPPCCCAUSE_IE_NOT_IMPLEMENTED	= 99,
        RIL_3GPPCCCAUSE_CONDITIONAL_IE_ERROR	= 100,
        RIL_3GPPCCCAUSE_MESSAGE_NOT_COMPATIBLE	= 101,
        RIL_3GPPCCCAUSE_RECOVERY_ON_TIMER_EXPIRY	= 102,
        RIL_3GPPCCCAUSE_PROTOCOL_ERROR_UNSPECIFIED	= 111,
        RIL_3GPPCCCAUSE_INTERWORKING_UNSPECIFIED	= 127
    } 	RIL3GPPCALLCONTROLCAUSECODE;

typedef struct RILGPPCAUSE
    {
    DWORD dwLocation;
    DWORD dwCauseValue;
    } 	RILGPPCAUSE;

typedef struct RILGPPCAUSE *LPRILGPPCAUSE;

typedef struct RILGPPREJECTCAUSE
    {
    DWORD dwCauseValue;
    } 	RILGPPREJECTCAUSE;

typedef struct RILGPPREJECTCAUSE *LPRILGPPREJECTCAUSE;

typedef struct RILGPP2CAUSE
    {
    DWORD dwCauseValue;
    } 	RILGPP2CAUSE;

typedef struct RILGPP2CAUSE *LPRILGPP2CAUSE;

typedef 
enum RILIMSSIPCAUSECODE
    {
        RIL_IMSSIPCAUSE_BAD_REQUEST	= 400,
        RIL_IMSSIPCAUSE_UNAUTHORIZED	= 401,
        RIL_IMSSIPCAUSE_PAYMENT_REQUIRED	= 402,
        RIL_IMSSIPCAUSE_FORBIDDEN	= 403,
        RIL_IMSSIPCAUSE_NOT_FOUND	= 404,
        RIL_IMSSIPCAUSE_METHOD_NOT_ALLOWED	= 405,
        RIL_IMSSIPCAUSE_NOT_ACCEPTABLE	= 406,
        RIL_IMSSIPCAUSE_PROXY_AUTHENTICATION_REQUIRED	= 407,
        RIL_IMSSIPCAUSE_REQUEST_TIMEOUT	= 408,
        RIL_IMSSIPCAUSE_GONE	= 410,
        RIL_IMSSIPCAUSE_REQUEST_ENTITY_TOO_LARGE	= 413,
        RIL_IMSSIPCAUSE_REQUEST_URI_TOO_LONG	= 414,
        RIL_IMSSIPCAUSE_UNSUPPORTED_MEDIA_TYPE	= 415,
        RIL_IMSSIPCAUSE_UNSUPPORTED_URI_SCHEME	= 416,
        RIL_IMSSIPCAUSE_BAD_EXTENSION	= 420,
        RIL_IMSSIPCAUSE_EXTENSION_REQUIRED	= 421,
        RIL_IMSSIPCAUSE_INTERVAL_TOO_BRIEF	= 423,
        RIL_IMSSIPCAUSE_TEMPORARILY_UNAVAILABLE	= 480,
        RIL_IMSSIPCAUSE_CALL_OR_TRANSACTION_DOES_NOT_EXIST	= 481,
        RIL_IMSSIPCAUSE_LOOP_DETECTED	= 482,
        RIL_IMSSIPCAUSE_TOO_MANY_HOPS	= 483,
        RIL_IMSSIPCAUSE_ADDRESS_INCOMPLETE	= 484,
        RIL_IMSSIPCAUSE_AMBIGUOUS	= 485,
        RIL_IMSSIPCAUSE_BUSY_HERE	= 486,
        RIL_IMSSIPCAUSE_REQUEST_TERMINATED	= 487,
        RIL_IMSSIPCAUSE_NOT_ACCEPTABLE_HERE	= 488,
        RIL_IMSSIPCAUSE_REQUEST_PENDING	= 491,
        RIL_IMSSIPCAUSE_UNDECIPHERABLE	= 493,
        RIL_IMSSIPCAUSE_SERVER_INTERNAL_ERROR	= 500,
        RIL_IMSSIPCAUSE_NOT_IMPLEMENTED	= 501,
        RIL_IMSSIPCAUSE_BAD_GATEWAY	= 502,
        RIL_IMSSIPCAUSE_SERVICE_UNAVAILABLE	= 503,
        RIL_IMSSIPCAUSE_SERVER_TIMEOUT	= 504,
        RIL_IMSSIPCAUSE_VERSION_NOT_SUPPORTED	= 505,
        RIL_IMSSIPCAUSE_MESSAGE_TOO_LARGE	= 513,
        RIL_IMSSIPCAUSE_BUSY_EVERYWHERE	= 600,
        RIL_IMSSIPCAUSE_DECLINE	= 603,
        RIL_IMSSIPCAUSE_DOES_NOT_EXIST_ANYWHERE	= 604,
        RIL_IMSSIPCAUSE_NOT_ACCEPTABLE_PARTIAL	= 606
    } 	RILIMSSIPCAUSECODE;

typedef 
enum RILIMSSIPREASON
    {
        RIL_IMSSIPREASON_NONE	= 0,
        RIL_IMSSIPREASON_NOT_AUTHORIZED_FOR_SERVICE	= 1,
        RIL_IMSSIPREASON_MAX	= RIL_IMSSIPREASON_NOT_AUTHORIZED_FOR_SERVICE
    } 	RILIMSSIPREASON;

typedef struct RILIMSSIPCAUSE
    {
    DWORD dwCauseValue;
    DWORD dwReasonValue;
    } 	RILIMSSIPCAUSE;

typedef struct RILIMSSIPCAUSE *LPRILIMSSIPCAUSE;

typedef struct RILCALLDISCONNECTDETAILS
    {
    RILCALLDISCONNECTDETAILSDISCONNECTGROUP dwDisconnectGroup;
    /* [switch_is] */ /* [switch_type] */ union RILCAUSEUNION
        {
        /* [case()] */ RILGPPCAUSE unGPPCause;
        /* [case()] */ RILGPPREJECTCAUSE unGPPRejectCause;
        /* [case()] */ RILGPP2CAUSE unGPP2Cause;
        /* [case()] */ RILIMSSIPCAUSE unIMSSIPCause;
        /* [case()] */ RILCALLDISCONNECTDETAILSASCODE dwASCode;
        /* [case()] */ DWORD dwOtherCode;
        } 	causeUnion;
    } 	RILCALLDISCONNECTDETAILS;

typedef struct RILCALLDISCONNECTDETAILS *LPRILCALLDISCONNECTDETAILS;

typedef 
enum RILACCESSTECHNOLOGYPARAMMASK
    {
        RIL_PARAM_ACCTECH_SYSTEMTYPE	= 0x1,
        RIL_PARAM_ACCTECH_SYSTEMKIND	= 0x2,
        RIL_PARAM_ACCTECH_ALL	= 0x3
    } 	RILACCESSTECHNOLOGYPARAMMASK;

typedef 
enum RILEVDOKIND
    {
        RIL_EVDOKIND_REV0	= 0x1,
        RIL_EVDOKIND_REVA	= 0x2,
        RIL_EVDOKIND_REVB	= 0x3,
        RIL_EVDOKIND_MAX	= RIL_EVDOKIND_REVB
    } 	RILEVDOKIND;

typedef 
enum RILGSMKIND
    {
        RIL_GSMKIND_GSM	= 0x1,
        RIL_GSMKIND_GPRS	= 0x2,
        RIL_GSMKIND_EDGE	= 0x3,
        RIL_GSMKIND_MAX	= RIL_GSMKIND_EDGE
    } 	RILGSMKIND;

typedef 
enum RILUMTSKIND
    {
        RIL_UMTSKIND_UMTS	= 0x1,
        RIL_UMTSKIND_HSDPA	= 0x2,
        RIL_UMTSKIND_HSUPA	= 0x3,
        RIL_UMTSKIND_HSPAPLUS	= 0x4,
        RIL_UMTSKIND_DC_HSPAPLUS	= 0x5,
        RIL_UMTSKIND_HSPAPLUS_64QAM	= 0x6,
        RIL_UMTSKIND_MAX	= RIL_UMTSKIND_HSPAPLUS_64QAM
    } 	RILUMTSKIND;

typedef 
enum RILTDSCDMAKIND
    {
        RIL_TDSCDMAKIND_UMTS	= 0x1,
        RIL_TDSCDMAKIND_HSDPA	= 0x2,
        RIL_TDSCDMAKIND_HSUPA	= 0x3,
        RIL_TDSCDMAKIND_HSPAPLUS	= 0x4,
        RIL_TDSCDMAKIND_DC_HSPAPLUS	= 0x5,
        RIL_TDSCDMAKIND_MAX	= RIL_TDSCDMAKIND_DC_HSPAPLUS
    } 	RILTDSCDMAKIND;

typedef 
enum RILLTEKIND
    {
        RIL_LTEKIND_UNKNOWN	= 0,
        RIL_LTEKIND_FDD	= 0x1,
        RIL_LTEKIND_TDD	= 0x2,
        RIL_LTEKIND_RESERVED	= 0x3,
        RIL_LTEKIND_UNKNOWN_CA	= 0x4,
        RIL_LTEKIND_FDD_CA	= 0x5,
        RIL_LTEKIND_TDD_CA	= 0x6,
        RIL_LTEKIND_MAX	= RIL_LTEKIND_TDD_CA
    } 	RILLTEKIND;

typedef struct RILACCESSTECHNOLOGY
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwSystemType;
    /* [switch_is] */ /* [switch_type] */ union RILACCESSTECHNOLOGYKINDUNION
        {
        /* [case()] */ RILEVDOKIND dwEvdoKind;
        /* [case()] */ RILGSMKIND dwGsmKind;
        /* [case()] */ RILUMTSKIND dwUmtsKind;
        /* [case()] */ RILTDSCDMAKIND dwTdscdmaKind;
        /* [case()] */ RILLTEKIND dwLteKind;
        } 	kindUnion;
    } 	RILACCESSTECHNOLOGY;

typedef struct RILACCESSTECHNOLOGY *LPRILACCESSTECHNOLOGY;

typedef 
enum RILREGSTAT
    {
        RIL_REGSTAT_UNKNOWN	= 0,
        RIL_REGSTAT_UNREGISTERED	= 0x1,
        RIL_REGSTAT_HOME	= 0x2,
        RIL_REGSTAT_ATTEMPTING	= 0x3,
        RIL_REGSTAT_DENIED	= 0x4,
        RIL_REGSTAT_ROAMING	= 0x5,
        RIL_REGSTAT_ROAMING_DOMESTIC	= 0x6,
        RIL_REGSTAT_MAX	= RIL_REGSTAT_ROAMING_DOMESTIC
    } 	RILREGSTAT;

typedef 
enum RILPERSOFEATURE
    {
        RIL_PERSOFEATURE_NONE	= 0,
        RIL_PERSOFEATURE_3GPP_NET	= 0x1,
        RIL_PERSOFEATURE_3GPP_NETSUB	= 0x2,
        RIL_PERSOFEATURE_3GPP_SP	= 0x4,
        RIL_PERSOFEATURE_3GPP_CORP	= 0x8,
        RIL_PERSOFEATURE_3GPP_USIM	= 0x10,
        RIL_PERSOFEATURE_3GPP2_NETTYPE1	= 0x20,
        RIL_PERSOFEATURE_3GPP2_NETTYPE2	= 0x40,
        RIL_PERSOFEATURE_3GPP2_HRPD	= 0x80,
        RIL_PERSOFEATURE_3GPP2_SP	= 0x100,
        RIL_PERSOFEATURE_3GPP2_CORP	= 0x200,
        RIL_PERSOFEATURE_3GPP2_UIM	= 0x400,
        RIL_PERSOFEATURE_ALL	= 0x7ff
    } 	RILPERSOFEATURE;

typedef 
enum RILINFOCLASS
    {
        RIL_INFOCLASS_NONE	= 0,
        RIL_INFOCLASS_VOICE	= 0x1,
        RIL_INFOCLASS_DATA	= 0x2,
        RIL_INFOCLASS_FAX	= 0x4,
        RIL_INFOCLASS_SMS	= 0x8,
        RIL_INFOCLASS_DATACIRCUITSYNC	= 0x10,
        RIL_INFOCLASS_DATACIRCUITASYNC	= 0x20,
        RIL_INFOCLASS_PACKETACCESS	= 0x40,
        RIL_INFOCLASS_PADACCESS	= 0x80,
        RIL_INFOCLASS_ALL	= 0xff
    } 	RILINFOCLASS;

typedef 
enum RILCALLTYPE
    {
        RIL_CALLTYPE_UNKNOWN	= 0,
        RIL_CALLTYPE_VOICE	= 0x1,
        RIL_CALLTYPE_DATA	= 0x2,
        RIL_CALLTYPE_FAX	= 0x3,
        RIL_CALLTYPE_PTT	= 0x4,
        RIL_CALLTYPE_VT	= 0x5,
        RIL_CALLTYPE_USSD	= 0x6,
        RIL_CALLTYPE_SUPSVC	= 0x7,
        RIL_CALLTYPE_IMS	= 0x8,
        RIL_CALLTYPE_MAX	= RIL_CALLTYPE_IMS
    } 	RILCALLTYPE;

typedef 
enum RILCALLMEDIATYPE
    {
        RIL_CALLMEDIATYPE_UNKNOWN	= 0,
        RIL_CALLMEDIATYPE_AUDIO	= 0x1,
        RIL_CALLMEDIATYPE_VIDEO	= 0x2,
        RIL_CALLMEDIATYPE_CUSTOM	= 0x3,
        RIL_CALLMEDIATYPE_MAX	= RIL_CALLMEDIATYPE_CUSTOM
    } 	RILCALLMEDIATYPE;

typedef struct RILCALLMEDIAID
    {
    RILCALLMEDIATYPE dwType;
    DWORD dwID;
    } 	RILCALLMEDIAID;

typedef struct RILCALLMEDIAID *LPRILCALLMEDIAID;

typedef 
enum RILCALLAUDIOMEDIASTATEPARAMMASK
    {
        RIL_PARAM_CALLAUDIO_SOURCE	= 0x1,
        RIL_PARAM_CALLAUDIO_QUALITY	= 0x2,
        RIL_PARAM_CALLAUDIO_FLAGS	= 0x4,
        RIL_PARAM_CALLAUDIO_ALL	= 0x7
    } 	RILCALLAUDIOMEDIASTATEPARAMMASK;

typedef 
enum RILCALLAUDIOSOURCE
    {
        RIL_CALLAUDIOSOURCE_CIRCUIT	= 0x1,
        RIL_CALLAUDIOSOURCE_PKT_MODEM	= 0x2,
        RIL_CALLAUDIOSOURCE_PKT_APP	= 0x3,
        RIL_CALLAUDIOSOURCE_MAX	= RIL_CALLAUDIOSOURCE_PKT_APP
    } 	RILCALLAUDIOSOURCE;

typedef 
enum RILCALLAUDIOQUALITY
    {
        RIL_CALLAUDIOQUALITY_LOW	= 1,
        RIL_CALLAUDIOQUALITY_STANDARD	= 2,
        RIL_CALLAUDIOQUALITY_HIGH	= 3,
        RIL_CALLAUDIOQUALITY_AMR_NB	= 5,
        RIL_CALLAUDIOQUALITY_AMR_WB	= 6,
        RIL_CALLAUDIOQUALITY_EVRC	= 7,
        RIL_CALLAUDIOQUALITY_EVRC_B	= 8,
        RIL_CALLAUDIOQUALITY_EVRC_NW	= 9,
        RIL_CALLAUDIOQUALITY_EVRC_WB	= 10,
        RIL_CALLAUDIOQUALITY_EVS_FB	= 11,
        RIL_CALLAUDIOQUALITY_EVS_NB	= 12,
        RIL_CALLAUDIOQUALITY_EVS_SWB	= 13,
        RIL_CALLAUDIOQUALITY_EVS_WB	= 14,
        RIL_CALLAUDIOQUALITY_GSM_EFR	= 15,
        RIL_CALLAUDIOQUALITY_GSM_FR	= 16,
        RIL_CALLAUDIOQUALITY_GSM_HR	= 17,
        RIL_CALLAUDIOQUALITY_QCELP13K	= 18,
        RIL_CALLAUDIOQUALITY_G711U	= 19,
        RIL_CALLAUDIOQUALITY_G711A	= 20,
        RIL_CALLAUDIOQUALITY_G722	= 21,
        RIL_CALLAUDIOQUALITY_G723	= 22,
        RIL_CALLAUDIOQUALITY_G729	= 23,
        RIL_CALLAUDIOQUALITY_MAX	= RIL_CALLAUDIOQUALITY_G729
    } 	RILCALLAUDIOQUALITY;

typedef 
enum RILCALLMEDIAAUDIOFLAGS
    {
        RIL_CALLMEDIAAUDIOFLAG_NONE	= 0,
        RIL_CALLMEDIAAUDIOFLAG_TEMPORARILY_UNAVAILABLE	= 0x1,
        RIL_CALLMEDIAAUDIOFLAG_ALL	= 0x1
    } 	RILCALLMEDIAAUDIOFLAGS;

typedef struct RILCALLAUDIOMEDIASTATE
    {
    DWORD dwParams;
    RILCALLAUDIOSOURCE dwAudioSource;
    RILCALLAUDIOQUALITY dwAudioQuality;
    DWORD dwFlags;
    } 	RILCALLAUDIOMEDIASTATE;

typedef struct RILCALLAUDIOMEDIASTATE *LPRILCALLAUDIOMEDIASTATE;

typedef struct RILCALLCUSTOMMEDIASTATE
    {
    DWORD dwCustomStateSpecific[ 1 ];
    } 	RILCALLCUSTOMMEDIASTATE;

typedef struct RILCALLCUSTOMMEDIASTATE *LPRILCALLCUSTOMMEDIASTATE;

typedef 
enum RILCALLMEDIADIRECTION
    {
        RIL_CALLMEDIADIRECTION_NONE	= 0,
        RIL_CALLMEDIADIRECTION_RX	= 0x1,
        RIL_CALLMEDIADIRECTION_TX	= 0x2,
        RIL_CALLMEDIADIRECTION_RXTX	= 0x3,
        RIL_CALLMEDIADIRECTION_MAX	= RIL_CALLMEDIADIRECTION_RXTX
    } 	RILCALLMEDIADIRECTION;

typedef 
enum RILCALLMEDIAVIDEOFLAGPARAMMASK
    {
        RIL_CALLMEDIAVIDEOFLAG_NONE	= 0,
        RIL_CALLMEDIAVIDEOFLAG_CAPABILITY_UNKNOWN	= 0x1,
        RIL_CALLMEDIAVIDEOFLAG_PAUSE	= 0x2,
        RIL_CALLMEDIAVIDEOFLAG_TEMPORARILY_UNAVAILABLE	= 0x4,
        RIL_CALLMEDIAVIDEOFLAG_ALL	= 0x7
    } 	RILCALLMEDIAVIDEOFLAGPARAMMASK;

typedef 
enum RILCALLVIDEOMEDIASTATEPARAMMASK
    {
        RIL_PARAM_CALLVIDEO_PEERCAPABILITIES	= 0x1,
        RIL_PARAM_CALLVIDEO_FLAGS	= 0x2,
        RIL_PARAM_CALLVIDEO_CONTEXTID	= 0x4,
        RIL_PARAM_CALLVIDEO_ALL	= 0x7
    } 	RILCALLVIDEOMEDIASTATEPARAMMASK;

typedef struct RILCALLVIDEOMEDIASTATE
    {
    DWORD dwParams;
    RILCALLMEDIADIRECTION dwPeerCapabilities;
    DWORD dwFlags;
    DWORD dwContextID;
    } 	RILCALLVIDEOMEDIASTATE;

typedef struct RILCALLVIDEOMEDIASTATE *LPRILCALLVIDEOMEDIASTATE;

typedef struct RILCALLMEDIASTATE
    {
    RILCALLMEDIADIRECTION dwDirection;
    RILCALLMEDIATYPE dwCallMediaType;
    /* [switch_is] */ /* [switch_type] */ union RILCALLMEDIASTATEUNION
        {
        /* [case()] */ RILCALLAUDIOMEDIASTATE stAudioState;
        /* [case()] */ RILCALLVIDEOMEDIASTATE stVideoState;
        /* [case()] */ RILCALLCUSTOMMEDIASTATE dwCustomStateSpecific;
        /* [case()] */ DWORD pad[ 16 ];
        } 	mediaStateUnion;
    } 	RILCALLMEDIASTATE;

typedef struct RILCALLMEDIASTATE *LPRILCALLMEDIASTATE;

typedef 
enum RILCALLMEDIAOFFERANSWERPARAMMASK
    {
        RIL_PARAM_CMOA_ID	= 0x1,
        RIL_PARAM_CMOA_CHANGE	= 0x2,
        RIL_PARAM_CMOA_ACTION	= 0x4,
        RIL_PARAM_CMOA_OLD_STATE	= 0x8,
        RIL_PARAM_CMOA_NEW_STATE	= 0x10,
        RIL_PARAM_CMOA_ALL	= 0x1f
    } 	RILCALLMEDIAOFFERANSWERPARAMMASK;

typedef 
enum RILCALLMEDIAOFFERACTION
    {
        RIL_CALLMEDIAOFFERACTION_NONE	= 0,
        RIL_CALLMEDIAOFFERACTION_ERROR	= 0x1,
        RIL_CALLMEDIAOFFERACTION_REJECT	= 0x2,
        RIL_CALLMEDIAOFFERACTION_ASK	= 0x3,
        RIL_CALLMEDIAOFFERACTION_ACCEPT	= 0x4,
        RIL_CALLMEDIAOFFERACTION_CANCEL	= 0x5,
        RIL_CALLMEDIAOFFERACTION_MAX	= RIL_CALLMEDIAOFFERACTION_CANCEL
    } 	RILCALLMEDIAOFFERACTION;

typedef struct RILCALLMEDIAOFFERANSWER
    {
    DWORD cbSize;
    DWORD dwParams;
    RILCALLMEDIAID stID;
    BOOL fChange;
    RILCALLMEDIAOFFERACTION dwMediaAction;
    RILCALLMEDIASTATE stOldState;
    RILCALLMEDIASTATE stNewState;
    } 	RILCALLMEDIAOFFERANSWER;

typedef struct RILCALLMEDIAOFFERANSWER *LPRILCALLMEDIAOFFERANSWER;

typedef 
enum RILCALLMEDIAOFFERANSWERTYPE
    {
        RIL_CALLMEDIAOFFERANSWERTYPE_UNKNOWN	= 0,
        RIL_CALLMEDIAOFFERANSWERTYPE_CURRENT	= 0x1,
        RIL_CALLMEDIAOFFERANSWERTYPE_OFFER	= 0x2,
        RIL_CALLMEDIAOFFERANSWERTYPE_ANSWER	= 0x3,
        RIL_CALLMEDIAOFFERANSWERTYPE_PEER_OFFER	= 0x4,
        RIL_CALLMEDIAOFFERANSWERTYPE_PEER_ANSWER	= 0x5,
        RIL_CALLMEDIAOFFERANSWERTYPE_MAX	= RIL_CALLMEDIAOFFERANSWERTYPE_PEER_ANSWER
    } 	RILCALLMEDIAOFFERANSWERTYPE;

typedef struct RILCALLMEDIAOFFERANSWERSET
    {
    DWORD cbSize;
    RILCALLMEDIAOFFERANSWERTYPE dwType;
    DWORD dwNumberOfItems;
    RILCALLMEDIAOFFERANSWER stOfferAnswer[ 4 ];
    } 	RILCALLMEDIAOFFERANSWERSET;

typedef struct RILCALLMEDIAOFFERANSWERSET *LPRILCALLMEDIAOFFERANSWERSET;

typedef 
enum RILCALLHANDOVERSTATEPARAMMASK
    {
        RIL_PARAM_HANDOVER_PHASE	= 0x1,
        RIL_PARAM_HANDOVER_OLD_TYPE	= 0x2,
        RIL_PARAM_HANDOVER_NEW_TYPE	= 0x4,
        RIL_PARAM_HANDOVER_3GPPCAUSE	= 0x8,
        RIL_PARAM_HANDOVER_ALL	= 0xf
    } 	RILCALLHANDOVERSTATEPARAMMASK;

typedef 
enum RILCALLHANDOVERPHASE
    {
        RIL_CALLHANDOVERPHASE_STARTED	= 0x1,
        RIL_CALLHANDOVERPHASE_COMPLETED	= 0x2,
        RIL_CALLHANDOVERPHASE_FAILED	= 0x3,
        RIL_CALLHANDOVERPHASE_CANCELLED	= 0x4,
        RIL_CALLHANDOVERPHASE_MAX	= RIL_CALLHANDOVERPHASE_CANCELLED
    } 	RILCALLHANDOVERPHASE;

typedef struct RILCALLHANDOVERSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    RILCALLHANDOVERPHASE dwPhase;
    RILCALLTYPE dwOldType;
    RILCALLTYPE dwNewType;
    DWORD dw3gppCause;
    } 	RILCALLHANDOVERSTATE;

typedef struct RILCALLHANDOVERSTATE *LPRILCALLHANDOVERSTATE;

typedef 
enum RILIMSSYSTEMTYPE
    {
        RIL_IMSSYSTEMTYPE_UNKNOWN	= 0,
        RIL_IMSSYSTEMTYPE_WIFI	= 0x1,
        RIL_IMSSYSTEMTYPE_LTE	= 0x2,
        RIL_IMSSYSTEMTYPE_MAX	= RIL_IMSSYSTEMTYPE_LTE
    } 	RILIMSSYSTEMTYPE;

typedef struct RILIMSHANDOVERATTEMPT
    {
    DWORD cbSize;
    RILIMSSYSTEMTYPE dwOldSystemType;
    RILIMSSYSTEMTYPE dwDestSystemType;
    HRESULT hrHandOverResult;
    } 	RILIMSHANDOVERATTEMPT;

typedef struct RILIMSHANDOVERATTEMPT *LPRILIMSHANDOVERATTEMPT;

typedef 
enum RILCALLMODIFICATIONCAUSECODE
    {
        RIL_CALL_MODIFIED_CAUSE_NONE	= 0,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_RTP_TIMEOUT	= 0x1,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_QOS	= 0x2,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_PACKET_LOSS	= 0x3,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_LOW_THROUGHPUT	= 0x4,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_THERMAL_MITIGATION	= 0x5,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_LIPSYNC	= 0x6,
        RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_GENERIC_ERROR	= 0x7,
        RIL_CALL_MODIFIED_CAUSE_MAX	= RIL_CALL_MODIFIED_CAUSE_DOWNGRADE_GENERIC_ERROR
    } 	RILCALLMODIFICATIONCAUSECODE;

typedef enum RILCALLMODIFICATIONCAUSECODE *LPRILCALLMODIFICATIONCAUSECODE;

typedef 
enum RILCALLRTTACTION
    {
        RIL_CALLRTTACTION_NONE	= 0,
        RIL_CALLRTTACTION_REJECT	= 0x1,
        RIL_CALLRTTACTION_ASK	= 0x2,
        RIL_CALLRTTACTION_ACCEPT	= 0x3,
        RIL_CALLRTTACTION_MAX	= RIL_CALLRTTACTION_ACCEPT
    } 	RILCALLRTTACTION;

typedef 
enum RILCALLRTTMODE
    {
        RIL_RTTMODE_DISABLED	= 0,
        RIL_RTTMODE_FULL	= 0x1,
        RIL_RTTMODE_MAX	= RIL_RTTMODE_FULL
    } 	RILCALLRTTMODE;

typedef struct RILCALLRTTCAP
    {
    RILCALLRTTMODE dwLocalRTTCap;
    RILCALLRTTMODE dwPeerRTTCap;
    } 	RILCALLRTTCAP;

typedef struct RILCALLRTTCAP *LPRILCALLRTTCAP;

typedef struct RILCALLRTT
    {
    RILCALLRTTACTION dwRTTAction;
    RILCALLRTTMODE dwRTTModeType;
    RILCALLRTTCAP stRTTCap;
    } 	RILCALLRTT;

typedef struct RILCALLRTT *LPRILCALLRTT;

typedef 
enum RILCAPSTYPE
    {
        RIL_CAPSTYPE_PERSOLOCKSUPPORT	= 0x1,
        RIL_CAPSTYPE_PERSOLOCKPWDLENGTH	= 0x2,
        RIL_CAPSTYPE_PBMAXREAD	= 0x3,
        RIL_CAPSTYPE_PBSTORELOCATIONS	= 0x4,
        RIL_CAPSTYPE_RADIOCONFIGURATIONS	= 0x5,
        RIL_CAPSTYPE_SIGNALQUALITYIMPLEMENTATION	= 0x6,
        RIL_CAPSTYPE_NITZNOTIFICATION	= 0x7,
        RIL_CAPSTYPE_CALLSUPPORT	= 0x9,
        RIL_CAPSTYPE_SMSSUPPORT	= 0xa,
        RIL_CAPSTYPE_ARG_SMALLEST	= RIL_CAPSTYPE_PERSOLOCKSUPPORT,
        RIL_CAPSTYPE_ARG_LARGEST	= RIL_CAPSTYPE_SMSSUPPORT,
        RIL_CAPSTYPE_MAX	= RIL_CAPSTYPE_SMSSUPPORT
    } 	RILCAPSTYPE;

typedef struct RILDRVNOTIFICATION
    {
    DWORD cbSize;
    DWORD cbSizeNeeded;
    DWORD dwCode;
    HRESULT hrCmdID;
    DWORD dwDataSize;
    BYTE pbData[ 1 ];
    } 	RILDRVNOTIFICATION;

typedef struct RILDRVNOTIFICATION *LPRILDRVNOTIFICATION;

typedef 
enum RILERRORDETAILSPARAMMASK
    {
        RIL_PARAM_ERR_CAUSE	= 0x1
    } 	RILERRORDETAILSPARAMMASK;

typedef struct RILERRORDETAILS
    {
    DWORD cbSize;
    DWORD dwParams;
    HRESULT hResult;
    DWORD dw3gppCause;
    } 	RILERRORDETAILS;

typedef struct RILERRORDETAILS *LPRILERRORDETAILS;

typedef struct RILGETDRIVERVERSIONPARAMS
    {
    DWORD dwMinVersion;
    DWORD dwMaxVersion;
    } 	RILGETDRIVERVERSIONPARAMS;

typedef struct RILGETDRIVERVERSIONPARAMS *LPRILGETDRIVERVERSIONPARAMS;

typedef 
enum RILDEVICEINFORMATION
    {
        RIL_DEVICEINFO_MANUFACTURER	= 0x1,
        RIL_DEVICEINFO_MODEL	= 0x2,
        RIL_DEVICEINFO_REVISION	= 0x3,
        RIL_DEVICEINFO_SERIALNUMBER_GW	= 0x4,
        RIL_DEVICEINFO_SERIALNUMBER_CDMA	= 0x5,
        RIL_DEVICEINFO_ARG_SMALLEST	= RIL_DEVICEINFO_MANUFACTURER,
        RIL_DEVICEINFO_ARG_LARGEST	= RIL_DEVICEINFO_SERIALNUMBER_CDMA,
        RIL_DEVICEINFO_MIN	= RIL_DEVICEINFO_MANUFACTURER,
        RIL_DEVICEINFO_MAX	= RIL_DEVICEINFO_SERIALNUMBER_CDMA
    } 	RILDEVICEINFORMATION;

typedef struct RILGETDEVICEINFOPARAMS
    {
    DWORD dwExecutor;
    RILDEVICEINFORMATION dwId;
    } 	RILGETDEVICEINFOPARAMS;

typedef struct RILGETDEVICEINFOPARAMS *LPRILGETDEVICEINFOPARAMS;

typedef 
enum RILIMSSERVICE
    {
        RIL_IMS_SERVICE_SMS	= 0x1,
        RIL_IMS_SERVICE_VOICE	= 0x2,
        RIL_IMS_SERVICE_VIDEO	= 0x4,
        RIL_IMS_SERVICE_CUSTOM	= 0x8,
        RIL_IMS_SERVICE_SUPSVC	= 0x10,
        RIL_IMS_SERVICE_RCS	= 0x20,
        RIL_IMS_SERVICE_USSD	= 0x40,
        RIL_IMS_SERVICE_E_VOICE	= 0x80,
        RIL_IMS_SERVICE_ALL	= 0xff
    } 	RILIMSSERVICE;

typedef 
enum RILSMSFORMAT
    {
        RIL_SMSFORMAT_NONE	= 0,
        RIL_SMSFORMAT_3GPP	= 0x1,
        RIL_SMSFORMAT_3GPP2	= 0x2,
        RIL_SMSFORMAT_MAX	= RIL_SMSFORMAT_3GPP2
    } 	RILSMSFORMAT;

typedef 
enum RILDMCONFIGINFOITEM
    {
        RILDMCONFIG_SIP_TIMER_T1	= 0x1,
        RILDMCONFIG_SIP_TIMER_T2	= 0x2,
        RILDMCONFIG_SIP_TIMER_F	= 0x3,
        RILDMCONFIG_SMS_FORMAT_TYPE	= 0x4,
        RILDMCONFIG_DOMAIN_NAME	= 0x5,
        RILDMCONFIG_SMS_OVER_IP_NW_INDICATION	= 0x6,
        RILDMCONFIG_IMS_TEST_MODE_STATUS	= 0x7,
        RILDMCONFIG_PCSCF_ADDRESS	= 0x8,
        RILDMCONFIG_PCSCF_PORT_NUMBER	= 0x9,
        RILDMCONFIG_MD5_AUTH	= 0xa,
        RILDMCONFIG_MULTIPARTY_SERVER	= 0xb,
        RILDMCONFIG_REQUEST_CONTEXT	= 0xc,
        RILDMCONFIG_IMS_NAI	= 0xd,
        RILDMCONFIG_SIP_SESSION_TIMER	= 0xe,
        RILDMCONFIG_SIP_SESSION_TIMER_MIN	= 0xf,
        RILDMCONFIG_AMR_WB_ENABLE	= 0x10,
        RILDMCONFIG_AMR_SRC_CTL_RATE	= 0x11,
        RILDMCONFIG_AMR_WB_SRC_CTL_RATE	= 0x12,
        RILDMCONFIG_AMR_MODE_SET	= 0x13,
        RILDMCONFIG_AMR_WB_MODE_SET	= 0x14,
        RILDMCONFIG_RINGING_TIMER	= 0x15,
        RILDMCONFIG_RINGBACK_TIMER	= 0x16,
        RILDMCONFIG_RTC_INACTIVITY_TIMER	= 0x17,
        RILDMCONFIG_UDP_KEEPALIVE_TIMER	= 0x18,
        RILDMCONFIG_IMS_VOICE_ENABLED	= 0x19,
        RILDMCONFIG_IMS_VIDEO_ENABLED	= 0x1a,
        RILDMCONFIG_IMS_NW_ENABLED_FLAGS	= 0x1b,
        RILDMCONFIG_IMS_IRAT_REG_DELAY	= 0x1c,
        RILDMCONFIG_1XRTT_FALLBACK_REDIAL_TIMER	= 0x1d,
        RILDMCONFIG_1XRTT_FALLBACK_REDIAL_ENABLE	= 0x1e,
        RILDMCONFIG_IMS_PRESENCE_ENABLED	= 0x1f,
        RILDMCONFIG_IMS_ROAMING_ENABLED	= 0x20,
        RILDMCONFIG_IMS_XCAP_ENABLED	= 0x21,
        RILDMCONFIG_EPDG_ADDRESS	= 0x22,
        RILDMCONFIG_VOWIFI_ENTITLEMENT_CHECK	= 0x23,
        RILDMCONFIG_RTT_MODE	= 0x24,
        RILDMCONFIG_MAX	= RILDMCONFIG_RTT_MODE
    } 	RILDMCONFIGINFOITEM;

typedef 
enum RILIMSNWENABLEDFLAGS
    {
        RIL_IMS_NW_ENABLED_FLAG_NONE	= 0,
        RIL_IMS_NW_ENABLED_FLAG_PROVISION	= 0x1,
        RIL_IMS_NW_ENABLED_FLAG_VOICE	= 0x2,
        RIL_IMS_NW_ENABLED_FLAG_VIDEO	= 0x4,
        RIL_IMS_NW_ENABLED_FLAG_EAB	= 0x8,
        RIL_IMS_NW_ENABLED_FLAG_ALL	= 0xf
    } 	RILIMSNWENABLEDFLAGS;

typedef 
enum RILDMCONFIGINFOTYPE
    {
        RIL_DMCV_TYPE_NONE	= 0,
        RIL_DMCV_TYPE_BOOLEAN	= 0x1,
        RIL_DMCV_TYPE_DWORD	= 0x2,
        RIL_DMCV_TYPE_STRING	= 0x3,
        RIL_DMCV_TYPE_MAX	= RIL_DMCV_TYPE_STRING
    } 	RILDMCONFIGINFOTYPE;

typedef struct RILDMCONFIGINFOVALUE
    {
    DWORD cbSize;
    RILDMCONFIGINFOTYPE dwType;
    BOOL fValue;
    DWORD dwValue;
    WCHAR wszValue[ 256 ];
    } 	RILDMCONFIGINFOVALUE;

typedef struct RILDMCONFIGINFOVALUE *LPRILDMCONFIGINFOVALUE;

typedef struct RILGETDMPROFILECONFIGINFOPARAMS
    {
    DWORD dwExecutor;
    RILDMCONFIGINFOITEM dwConfigItem;
    } 	RILGETDMPROFILECONFIGINFOPARAMS;

typedef struct RILGETDMPROFILECONFIGINFOPARAMS *LPRILGETDMPROFILECONFIGINFOPARAMS;

typedef struct RILSETDMPROFILECONFIGINFOPARAMS
    {
    DWORD dwExecutor;
    RILDMCONFIGINFOITEM dwConfigItem;
    RILDMCONFIGINFOVALUE rciValue;
    } 	RILSETDMPROFILECONFIGINFOPARAMS;

typedef struct RILSETDMPROFILECONFIGINFOPARAMS *LPRILSETDMPROFILECONFIGINFOPARAMS;

typedef 
enum RILRADIOPRESENCE
    {
        RIL_RADIOPRESENCE_NOTPRESENT	= 0x1,
        RIL_RADIOPRESENCE_PRESENT	= 0x2,
        RIL_RADIOPRESENCE_MAX	= RIL_RADIOPRESENCE_PRESENT
    } 	RILRADIOPRESENCE;

typedef 
enum RILEQUIPMENTSTATE
    {
        RIL_EQSTATE_MINIMUM	= 0x1,
        RIL_EQSTATE_FULL	= 0x2,
        RIL_EQSTATE_SHUTDOWN	= 0x3,
        RIL_EQSTATE_MAX	= RIL_EQSTATE_SHUTDOWN
    } 	RILEQUIPMENTSTATE;

typedef 
enum RILNOTIFICATIONFILTERMASK
    {
        RIL_NFS_NONE	= 0,
        RIL_NFS_SIGNALQUALITY	= 0x1,
        RIL_NFS_REGSTATUS_RATKIND	= 0x2,
        RIL_NFS_LOCATIONUPDATE	= 0x4,
        RIL_NFS_ALL	= 0x7
    } 	RILNOTIFICATIONFILTERMASK;

typedef struct RILSETNOTIFICATIONFILTERSTATEPARAMS
    {
    DWORD dwFilterMask;
    DWORD dwFilterState;
    } 	RILSETNOTIFICATIONFILTERSTATEPARAMS;

typedef struct RILSETNOTIFICATIONFILTERSTATEPARAMS *LPRILSETNOTIFICATIONFILTERSTATEPARAMS;

typedef 
enum RILRESETMODEMKIND
    {
        RIL_RESETMODEMKIND_NORMAL	= 0x1,
        RIL_RESETMODEMKIND_ABRUPT	= 0x2,
        RIL_RESETMODEMKIND_MAX	= RIL_RESETMODEMKIND_ABRUPT
    } 	RILRESETMODEMKIND;

typedef 
enum RILRESETMODEMIMSENABLEMENTSTATE
    {
        RIL_RESETMODEM_DISABLED	= 0x1,
        RIL_RESETMODEM_ENABLED	= 0x2
    } 	RILRESETMODEMIMSENABLEMENTSTATE;

typedef 
enum RILRESETMODEMCONFIGPARAMETER
    {
        RIL_RESETMODEMCONFIGPARAMETER_IMSENABLEMENTSTATE	= 0x1,
        RIL_RESETMODEMCONFIGPARAMETER_MAX	= RIL_RESETMODEMCONFIGPARAMETER_IMSENABLEMENTSTATE
    } 	RILRESETMODEMCONFIGPARAMETER;

typedef 
enum RILRMCVTYPE
    {
        RIL_RMCV_TYPE_NONE	= 0,
        RIL_RMCV_TYPE_BOOLEAN	= 0x1,
        RIL_RMCV_TYPE_DWORD	= 0x2,
        RIL_RMCV_TYPE_STRING	= 0x3
    } 	RILRMCVTYPE;

typedef struct RILRESETMODEMCONFIGVALUE
    {
    DWORD cbSize;
    DWORD dwType;
    /* [switch_is] */ /* [switch_type] */ union RILRESETMODEMCONFIGVALUEUNION
        {
        /* [case()] */ BOOL fValue;
        /* [case()] */ DWORD dwValue;
        /* [case()] */ WCHAR wszValue[ 256 ];
        } 	configValueUnion;
    } 	RILRESETMODEMCONFIGVALUE;

typedef struct RILRESETMODEMCONFIGVALUE *LPRILRESETMODEMCONFIGVALUE;

typedef struct RILRESETMODEMCONFIGITEM
    {
    DWORD dwModemConfigItem;
    RILRESETMODEMCONFIGVALUE rrmcValue;
    } 	RILRESETMODEMCONFIGITEM;

typedef struct RILRESETMODEMCONFIGITEM *LPRILRESETMODEMCONFIGITEM;

typedef struct RILRESETMODEMPARAMS
    {
    DWORD dwResetKind;
    DWORD dwNumberOfConfigItems;
    RILRESETMODEMCONFIGITEM rmciModemConfigItems[ 1 ];
    } 	RILRESETMODEMPARAMS;

typedef struct RILRESETMODEMPARAMS *LPRILRESETMODEMPARAMS;

typedef 
enum RILMODEMRESETSTATE
    {
        RIL_MODEMRESETSTATE_STARTED	= 0x1,
        RIL_MODEMRESETSTATE_RECOVERED	= 0x2,
        RIL_MODEMRESETSTATE_FAILED	= 0x3,
        RIL_MODEMRESETSTATE_MAX	= RIL_MODEMRESETSTATE_FAILED
    } 	RILMODEMRESETSTATE;

typedef 
enum RILUICCSLOTINFOPARAMMASK
    {
        RIL_PARAM_SLOTINFO_NUMSLOTS	= 0x1,
        RIL_PARAM_SLOTINFO_SLOTSTATE	= 0x2,
        RIL_PARAM_SLOTINFO_ALL	= 0x3
    } 	RILUICCSLOTINFOPARAMMASK;

typedef 
enum RILUICCSLOTSTATE
    {
        RIL_UICCSLOT_OFF_EMPTY	= 0x1,
        RIL_UICCSLOT_OFF	= 0x2,
        RIL_UICCSLOT_EMPTY	= 0x3,
        RIL_UICCSLOT_NOT_READY	= 0x4,
        RIL_UICCSLOT_ACTIVE	= 0x5,
        RIL_UICCSLOT_ERROR	= 0x6,
        RIL_UICCSLOT_MAX	= RIL_UICCSLOT_ERROR
    } 	RILUICCSLOTSTATE;

typedef struct RILUICCSLOTINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwNumOfUiccSlots;
    RILUICCSLOTSTATE dwSlotState[ 1 ];
    } 	RILUICCSLOTINFO;

typedef struct RILUICCSLOTINFO *LPRILUICCSLOTINFO;

typedef 
enum RILUICCAPPINFOPARAMMASK
    {
        RIL_PARAM_UICCAPPINFO_HUICCAPP	= 0x1,
        RIL_PARAM_UICCAPPINFO_APPTYPE	= 0x2,
        RIL_PARAM_UICCAPPINFO_APPIDLENGTH	= 0x4,
        RIL_PARAM_UICCAPPINFO_APPID	= 0x8,
        RIL_PARAM_UICCAPPINFO_APPNAMELENGTH	= 0x10,
        RIL_PARAM_UICCAPPINFO_APPNAME	= 0x20,
        RIL_PARAM_UICCAPPINFO_NUMPINS	= 0x40,
        RIL_PARAM_UICCAPPINFO_PINREF	= 0x80,
        RIL_PARAM_UICCAPPINFO_ALL	= 0xff
    } 	RILUICCAPPINFOPARAMMASK;

typedef 
enum RILUICCAPPTYPE
    {
        RIL_UICCAPPTYPE_UNKNOWN	= 0x1,
        RIL_UICCAPPTYPE_MF	= 0x2,
        RIL_UICCAPPTYPE_MF_SIM	= 0x3,
        RIL_UICCAPPTYPE_MF_RUIM	= 0x4,
        RIL_UICCAPPTYPE_USIM	= 0x5,
        RIL_UICCAPPTYPE_CSIM	= 0x6,
        RIL_UICCAPPTYPE_ISIM	= 0x7,
        RIL_UICCAPPTYPE_MAX	= RIL_UICCAPPTYPE_ISIM
    } 	RILUICCAPPTYPE;

typedef struct RILUICCAPPINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    HUICCAPP hUiccApp;
    RILUICCAPPTYPE dwUiccAppType;
    DWORD dwAppIdLength;
    BYTE bAppId[ 32 ];
    DWORD dwAppNameLength;
    char cszAppName[ 256 ];
    DWORD dwNumPins;
    BYTE bPinRef[ 8 ];
    } 	RILUICCAPPINFO;

typedef struct RILUICCAPPINFO *LPRILUICCAPPINFO;

typedef 
enum RILUICCCARDINFOPARAMMASK
    {
        RIL_PARAM_CARDINFO_ISVIRTUAL	= 0x1,
        RIL_PARAM_CARDINFO_ICCID	= 0x2,
        RIL_PARAM_CARDINFO_NUMAPPS	= 0x4,
        RIL_PARAM_CARDINFO_APPINFO	= 0x8,
        RIL_PARAM_CARDINFO_ALL	= 0xf
    } 	RILUICCCARDINFOPARAMMASK;

typedef struct RILUICCCARDINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    BOOL fIsVirtualCard;
    BYTE IccId[ 10 ];
    DWORD dwNumApps;
    RILUICCAPPINFO AppInfo[ 1 ];
    } 	RILUICCCARDINFO;

typedef struct RILUICCCARDINFO *LPRILUICCCARDINFO;

typedef struct RILSETSLOTPOWERPARAMS
    {
    DWORD dwSlotIndex;
    BOOL fPowerOn;
    } 	RILSETSLOTPOWERPARAMS;

typedef struct RILSETSLOTPOWERPARAMS *LPRILSETSLOTPOWERPARAMS;

typedef 
enum RILUICCFILELOCKSTATUSPARAMMASK
    {
        RIL_PARAM_UFLS_ACCESSCONDITION	= 0x1,
        RIL_PARAM_UFLS_PINREFERENCE	= 0x2,
        RIL_PARAM_UFLS_ALL	= 0x3
    } 	RILUICCFILELOCKSTATUSPARAMMASK;

typedef 
enum RILUICCFILELOCKSTATUSACCESSCONDITION
    {
        RIL_UICCFILEACCESSCONDITION_ALW	= 0,
        RIL_UICCFILEACCESSCONDITION_PIN1	= 0x1,
        RIL_UICCFILEACCESSCONDITION_PIN2	= 0x2,
        RIL_UICCFILEACCESSCONDITION_RFU3	= 0x3,
        RIL_UICCFILEACCESSCONDITION_RFU4	= 0x4,
        RIL_UICCFILEACCESSCONDITION_ADM5	= 0x5,
        RIL_UICCFILEACCESSCONDITION_ADM6	= 0x6,
        RIL_UICCFILEACCESSCONDITION_NEV	= 0x7,
        RIL_UICCFILEACCESSCONDITION_MAX	= RIL_UICCFILEACCESSCONDITION_NEV
    } 	RILUICCFILELOCKSTATUSACCESSCONDITION;

typedef struct RILUICCFILELOCKSTATUS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILUICCFILELOCKSTATUSACCESSCONDITION dwAccessCondition;
    BYTE bPinRef[ 8 ];
    } 	RILUICCFILELOCKSTATUS;

typedef struct RILUICCFILELOCKSTATUS *LPRILUICCFILELOCKSTATUS;

typedef 
enum RILUICCRECORDTYPE
    {
        RIL_UICCRECORDTYPE_UNKNOWN	= 0,
        RIL_UICCRECORDTYPE_TRANSPARENT	= 0x1,
        RIL_UICCRECORDTYPE_CYCLIC	= 0x2,
        RIL_UICCRECORDTYPE_LINEAR	= 0x3,
        RIL_UICCRECORDTYPE_BERTLV	= 0x4,
        RIL_UICCRECORDTYPE_MASTER	= 0x5,
        RIL_UICCRECORDTYPE_DEDICATED	= 0x6,
        RIL_UICCRECORDTYPE_MAX	= RIL_UICCRECORDTYPE_DEDICATED
    } 	RILUICCRECORDTYPE;

typedef 
enum RILUICCRECORDSTATUSPARAMMASK
    {
        RIL_PARAM_URS_RECORDTYPE	= 0x1,
        RIL_PARAM_URS_ITEMCOUNT	= 0x2,
        RIL_PARAM_URS_SIZE	= 0x4,
        RIL_PARAM_URS_FILELOCKSTATUS	= 0x8,
        RIL_PARAM_URS_ALL	= 0xf
    } 	RILUICCRECORDSTATUSPARAMMASK;

typedef struct RILUICCRECORDSTATUS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILUICCRECORDTYPE dwRecordType;
    DWORD dwItemCount;
    DWORD dwSize;
    RILUICCFILELOCKSTATUS fileLockStatus[ 4 ];
    } 	RILUICCRECORDSTATUS;

typedef struct RILUICCRECORDSTATUS *LPRILUICCRECORDSTATUS;

typedef 
enum RILUICCCOMMAND
    {
        RIL_UICCCMD_READBINARY	= 0x1,
        RIL_UICCCMD_READRECORD	= 0x2,
        RIL_UICCCMD_UPDATEBINARY	= 0x3,
        RIL_UICCCMD_UPDATERECORD	= 0x4,
        RIL_UICCCMD_MAX	= RIL_UICCCMD_UPDATERECORD
    } 	RILUICCCOMMAND;

typedef 
enum RILUICCCMDPARAMETERSPARAMMASK
    {
        RIL_PARAM_SCP_FILEPATH	= 0x1,
        RIL_PARAM_SCP_PARAM1	= 0x2,
        RIL_PARAM_SCP_PARAM2	= 0x4,
        RIL_PARAM_SCP_PARAM3	= 0x8,
        RIL_PARAM_SCP_ALL	= 0xf
    } 	RILUICCCMDPARAMETERSPARAMMASK;

typedef struct RILUICCCMDPARAMETERS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILUICCFILEPATH filePath;
    DWORD dwParameter1;
    DWORD dwParameter2;
    DWORD dwParameter3;
    } 	RILUICCCMDPARAMETERS;

typedef struct RILUICCCMDPARAMETERS *LPRILUICCCMDPARAMETERS;

typedef struct RILSENDRESTRICTEDUICCCMDPARAMS
    {
    DWORD cbSize;
    RILUICCCOMMAND dwCommand;
    RILUICCCMDPARAMETERS rscpParameters;
    BOOL fHasLockVerification;
    RILUICCLOCKCREDENTIAL lockVerification;
    DWORD dwDataSize;
    BYTE pbData[ 1 ];
    } 	RILSENDRESTRICTEDUICCCMDPARAMS;

typedef struct RILSENDRESTRICTEDUICCCMDPARAMS *LPRILSENDRESTRICTEDUICCCMDPARAMS;

typedef 
enum RILUICCRESPONSEPARAMMASK
    {
        RIL_PARAM_SR_STATUSWORD1	= 0x1,
        RIL_PARAM_SR_STATUSWORD2	= 0x2,
        RIL_PARAM_SR_RESPONSESIZE	= 0x4,
        RIL_PARAM_SR_RESPONSE	= 0x8,
        RIL_PARAM_SR_ALL	= 0xf
    } 	RILUICCRESPONSEPARAMMASK;

typedef struct RILUICCRESPONSE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwStatusWord1;
    DWORD dwStatusWord2;
    DWORD dwResponseSize;
    BYTE pbResponse[ 1 ];
    } 	RILUICCRESPONSE;

typedef struct RILUICCRESPONSE *LPRILUICCRESPONSE;

typedef struct RILUICCFILES
    {
    DWORD cbSize;
    DWORD dwNumFiles;
    RILUICCFILEPATH filePath[ 1 ];
    } 	RILUICCFILES;

typedef struct RILUICCFILES *LPRILUICCFILES;

typedef 
enum RILUICCPRLID
    {
        RIL_UICC_PRLID_UNSPECIFIED	= 0xffffffff
    } 	RILUICCPRLID;

typedef 
enum RILIMSIPARAMMASK
    {
        RIL_PARAM_IMSI_IMSI	= 0x1,
        RIL_PARAM_IMSI_MCC	= 0x2,
        RIL_PARAM_IMSI_MNC	= 0x4,
        RIL_PARAM_IMSI_ALL	= 0x7
    } 	RILIMSIPARAMMASK;

typedef struct RILIMSI
    {
    DWORD cbSize;
    DWORD dwParams;
    WCHAR wszImsi[ 16 ];
    DWORD dwMcc;
    DWORD dwMnc;
    } 	RILIMSI;

typedef struct RILIMSI *LPRILIMSI;

typedef 
enum RILSUBSCRIBERINFOPARAMMASK
    {
        RIL_PARAM_SI_ADDRESS	= 0x1,
        RIL_PARAM_SI_DESCRIPTION	= 0x2,
        RIL_PARAM_SI_SERVICE	= 0x4,
        RIL_PARAM_SI_ALL	= 0x7
    } 	RILSUBSCRIBERINFOPARAMMASK;

typedef 
enum RILSUBSCRIBERINFOSERVICE
    {
        RIL_SERVICE_UNKNOWN	= 0x1,
        RIL_SERVICE_VOICE	= 0x2,
        RIL_SERVICE_FAX	= 0x3,
        RIL_SERVICE_OTHER	= 0x4,
        RIL_SERVICE_MAX	= RIL_SERVICE_OTHER
    } 	RILSUBSCRIBERINFOSERVICE;

typedef struct RILSUBSCRIBERINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    RILADDRESS raAddress;
    WCHAR wszDescription[ 256 ];
    RILSUBSCRIBERINFOSERVICE dwService;
    } 	RILSUBSCRIBERINFO;

typedef struct RILSUBSCRIBERINFO *LPRILSUBSCRIBERINFO;

typedef struct RILUICCSUBSCRIBERNUMBERS
    {
    DWORD cbSize;
    DWORD dwNumSubscribers;
    RILSUBSCRIBERINFO rsiInfo[ 1 ];
    } 	RILUICCSUBSCRIBERNUMBERS;

typedef struct RILUICCSUBSCRIBERNUMBERS *LPRILUICCSUBSCRIBERNUMBERS;

typedef struct RILUICCATRINFO
    {
    DWORD dwATRlength;
    BYTE bATR[ 36 ];
    } 	RILUICCATRINFO;

typedef struct RILUICCATRINFO *LPRILUICCATRINFO;

typedef 
enum RILUICCCHANNELGROUP
    {
        RIL_UICCCHANNELGROUP_NFC	= 0x1
    } 	RILUICCCHANNELGROUP;

typedef struct RILOPENUICCLOGICALCHANNELPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwChannelGroup;
    DWORD dwAppIdLength;
    BYTE bAppId[ 32 ];
    DWORD dwSelectP2Arg;
    } 	RILOPENUICCLOGICALCHANNELPARAMS;

typedef struct RILOPENUICCLOGICALCHANNELPARAMS *LPRILOPENUICCLOGICALCHANNELPARAMS;

typedef 
enum RILOPENUICCLOGICALCHANNELPARAMMASK
    {
        RIL_PARAM_OULC_CHANNELID	= 0x1,
        RIL_PARAM_OULC_SELECTRESPLENGTH	= 0x2,
        RIL_PARAM_OULC_SELECTRESPONSE	= 0x4,
        RIL_PARAM_OULC_ALL	= 0x7
    } 	RILOPENUICCLOGICALCHANNELPARAMMASK;

typedef struct RILOPENUICCLOGICALCHANNELINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwChannelId;
    DWORD dwSelectResponseLength;
    BYTE bSelectResponse[ 1 ];
    } 	RILOPENUICCLOGICALCHANNELINFO;

typedef struct RILOPENUICCLOGICALCHANNELINFO *LPRILOPENUICCLOGICALCHANNELINFO;

typedef struct RILCLOSEUICCLOGICALCHANNELPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwChannelId;
    } 	RILCLOSEUICCLOGICALCHANNELPARAMS;

typedef struct RILCLOSEUICCLOGICALCHANNELPARAMS *LPRILCLOSEUICCLOGICALCHANNELPARAMS;

typedef struct RILCLOSEUICCLOGICALCHANNELGROUPPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwChannelGroup;
    } 	RILCLOSEUICCLOGICALCHANNELGROUPPARAMS;

typedef struct RILCLOSEUICCLOGICALCHANNELGROUPPARAMS *LPRILCLOSEUICCLOGICALCHANNELGROUPPARAMS;

typedef struct RILEXCHANGEUICCAPDUPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwChannelId;
    DWORD dwAPDULength;
    BYTE bAPDU[ 1 ];
    } 	RILEXCHANGEUICCAPDUPARAMS;

typedef struct RILEXCHANGEUICCAPDUPARAMS *LPRILEXCHANGEUICCAPDUPARAMS;

typedef 
enum RILEXCHANGEUICCAPDURESPONSEPARAMMASK
    {
        RIL_PARAM_EUAR_RESPONSEAPDULENGTH	= 0x1,
        RIL_PARAM_EUAR_RESPONSEAPDU	= 0x2,
        RIL_PARAM_EUAR_ALL	= 0x3
    } 	RILEXCHANGEUICCAPDURESPONSEPARAMMASK;

typedef struct RILEXCHANGEUICCAPDURESPONSE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwResponseAPDULength;
    BYTE bResponseAPDU[ 1 ];
    } 	RILEXCHANGEUICCAPDURESPONSE;

typedef struct RILEXCHANGEUICCAPDURESPONSE *LPRILEXCHANGEUICCAPDURESPONSE;

typedef struct RILTERMINALCAPABILITYINFO
    {
    DWORD dwSize;
    BYTE bData[ 256 ];
    } 	RILTERMINALCAPABILITYINFO;

typedef struct RILTERMINALCAPABILITYINFO *LPRILTERMINALCAPABILITYINFO;

typedef 
enum RILUICCAPPDATACHANGEENUM
    {
        RIL_UICCAPP_DATACHANGE_MSISDN	= 0x1,
        RIL_UICCAPP_DATACHANGE_MBDN	= 0x2,
        RIL_UICCAPP_DATACHANGE_EF_CSP_PLMN_UNSET	= 0x3,
        RIL_UICCAPP_DATACHANGE_EF_CSP_PLMN_SET	= 0x4,
        RIL_UICCAPP_DATACHANGE_ESNME	= 0x5,
        RIL_UICCAPP_DATACHANGE_MAX	= RIL_UICCAPP_DATACHANGE_ESNME
    } 	RILUICCAPPDATACHANGEENUM;

typedef struct RILUICCAPPDATACHANGE
    {
    DWORD cbSize;
    HUICCAPP hUiccApp;
    RILUICCAPPDATACHANGEENUM dwDataChange;
    } 	RILUICCAPPDATACHANGE;

typedef struct RILUICCAPPDATACHANGE *LPRILUICCAPPDATACHANGE;

typedef 
enum RILCARDAPPADDEDPARAMMASK
    {
        RIL_PARAM_CARDAPPADDED_SLOTINDEX	= 0x1,
        RIL_PARAM_CARDAPPADDED_UICCAPPINFO	= 0x2,
        RIL_PARAM_CARDAPPADDED_ALL	= 0x3
    } 	RILCARDAPPADDEDPARAMMASK;

typedef struct RILCARDAPPADDED
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwSlotIndex;
    RILUICCAPPINFO rilUiccAppInfo;
    } 	RILCARDAPPADDED;

typedef struct RILCARDAPPADDED *LPRILCARDAPPADDED;

typedef 
enum RILPERSOLOCKSUPPORTCAPS
    {
        RIL_CAPS_PERSOFEATURE_3GPP_NET	= 0x1,
        RIL_CAPS_PERSOFEATURE_3GPP_NETSUB	= 0x2,
        RIL_CAPS_PERSOFEATURE_3GPP_SP	= 0x4,
        RIL_CAPS_PERSOFEATURE_3GPP_CORP	= 0x8,
        RIL_CAPS_PERSOFEATURE_3GPP_USIM	= 0x10,
        RIL_CAPS_PERSOFEATURE_3GPP2_NETTYPE1	= 0x20,
        RIL_CAPS_PERSOFEATURE_3GPP2_NETTYPE2	= 0x40,
        RIL_CAPS_PERSOFEATURE_3GPP2_HRPD	= 0x80,
        RIL_CAPS_PERSOFEATURE_3GPP2_SP	= 0x100,
        RIL_CAPS_PERSOFEATURE_3GPP2_CORP	= 0x200,
        RIL_CAPS_PERSOFEATURE_3GPP2_UIM	= 0x400,
        RIL_CAPS_PERSOFEATURE_ALL	= 0x7ff
    } 	RILPERSOLOCKSUPPORTCAPS;

typedef 
enum RILCAPSLOCKINGPWDLENGTHPARAMMASK
    {
        RIL_PARAM_CLPL_FACILITY	= 0x1,
        RIL_PARAM_CLPL_PASSWORDLENGTH	= 0x2,
        RIL_PARAM_CLPL_ALL	= 0x3
    } 	RILCAPSLOCKINGPWDLENGTHPARAMMASK;

typedef struct RILCAPSLOCKINGPWDLENGTH
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwPersoFeature;
    DWORD dwPasswordLength;
    } 	RILCAPSLOCKINGPWDLENGTH;

typedef struct RILCAPSLOCKINGPWDLENGTH *LPRILCAPSLOCKINGPWDLENGTH;

typedef 
enum RILUICCLOCKSTATEPARAMMASK
    {
        RIL_PARAM_UICCLOCKSTATE_UICCLOCK	= 0x1,
        RIL_PARAM_UICCLOCKSTATE_LOCKSTATE	= 0x2,
        RIL_PARAM_UICCLOCKSTATE_VERIFYATTEMPTSLEFT	= 0x4,
        RIL_PARAM_UICCLOCKSTATE_UNBLOCKATTEMPTSLEFT	= 0x8,
        RIL_PARAM_UICCLOCKSTATE_ALL	= 0xf
    } 	RILUICCLOCKSTATEPARAMMASK;

typedef 
enum RILUICCLOCKSTATELOCKSTATE
    {
        RIL_UICCLOCKSTATE_NONE	= 0,
        RIL_UICCLOCKSTATE_VERIFIED	= 0x1,
        RIL_UICCLOCKSTATE_ENABLED	= 0x2,
        RIL_UICCLOCKSTATE_BLOCKED	= 0x4,
        RIL_UICCLOCKSTATE_ALL	= 0x7
    } 	RILUICCLOCKSTATELOCKSTATE;

typedef struct RILUICCLOCKSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    RILUICCLOCK rilUiccLock;
    DWORD dwLockState;
    DWORD dwVerifyAttemptsLeft;
    DWORD dwUnblockAttemptsLeft;
    } 	RILUICCLOCKSTATE;

typedef struct RILUICCLOCKSTATE *LPRILUICCLOCKSTATE;

typedef 
enum RILUICCSERVICESERVICE
    {
        RIL_UICCOPERATION_SERVICE_FDN	= 0x1,
        RIL_UICCOPERATION_SERVICE_BDN	= 0x2,
        RIL_UICCOPERATION_SERVICE_ACL	= 0x3,
        RIL_UICCOPERATION_SERVICE_MAX	= RIL_UICCOPERATION_SERVICE_ACL
    } 	RILUICCSERVICESERVICE;

typedef struct RILUICCSERVICE
    {
    HUICCAPP hUiccApp;
    RILUICCSERVICESERVICE dwService;
    } 	RILUICCSERVICE;

typedef struct RILUICCSERVICE *LPRILUICCSERVICE;

typedef struct RILSETUICCLOCKENABLEDPARAMS
    {
    RILUICCLOCKCREDENTIAL lockCredential;
    BOOL fEnable;
    } 	RILSETUICCLOCKENABLEDPARAMS;

typedef struct RILSETUICCLOCKENABLEDPARAMS *LPRILSETUICCLOCKENABLEDPARAMS;

typedef struct RILUNBLOCKUICCLOCKPARAMS
    {
    RILUICCLOCKCREDENTIAL lockCredential;
    char szNewPassword[ 256 ];
    } 	RILUNBLOCKUICCLOCKPARAMS;

typedef struct RILUNBLOCKUICCLOCKPARAMS *LPRILUNBLOCKUICCLOCKPARAMS;

typedef struct RILCHANGEUICCLOCKPASSWORDPARAMS
    {
    RILUICCLOCKCREDENTIAL lockCredential;
    char szNewPassword[ 256 ];
    } 	RILCHANGEUICCLOCKPASSWORDPARAMS;

typedef struct RILCHANGEUICCLOCKPASSWORDPARAMS *LPRILCHANGEUICCLOCKPASSWORDPARAMS;

typedef 
enum RILUICCAPPPERSOCHECKSTATUSPARAMMASK
    {
        RIL_PARAM_UAPCS_HUICCAPP	= 0x1,
        RIL_PARAM_UAPCS_PERSOFEATURE	= 0x2,
        RIL_PARAM_UAPCS_PERSOCHECKSTATE	= 0x4,
        RIL_PARAM_UAPCS_ALL	= 0x7
    } 	RILUICCAPPPERSOCHECKSTATUSPARAMMASK;

typedef 
enum RILUICCAPPPERSOCHECKSTATUSSTATE
    {
        RIL_PERSOCHECKSTATE_NOTREADY	= 0x1,
        RIL_PERSOCHECKSTATE_PASS	= 0x2,
        RIL_PERSOCHECKSTATE_FAIL	= 0x3,
        RIL_PERSOCHECKSTATE_MAX	= RIL_PERSOCHECKSTATE_FAIL
    } 	RILUICCAPPPERSOCHECKSTATUSSTATE;

typedef struct RILUICCAPPPERSOCHECKSTATUS
    {
    DWORD cbSize;
    DWORD dwParams;
    HUICCAPP hUiccApp;
    DWORD dwPersoFeature;
    RILUICCAPPPERSOCHECKSTATUSSTATE dwPersoCheckState;
    } 	RILUICCAPPPERSOCHECKSTATUS;

typedef struct RILUICCAPPPERSOCHECKSTATUS *LPRILUICCAPPPERSOCHECKSTATUS;

typedef 
enum RILPERSODEACTIVATIONSTATEPARAMMASK
    {
        RIL_PARAM_PDS_STATE	= 0x1,
        RIL_PARAM_PDS_CK_ATTEMPTS	= 0x2,
        RIL_PARAM_PDS_PUK_ATTEMPTS	= 0x4,
        RIL_PARAM_PDS_ALL	= 0x7
    } 	RILPERSODEACTIVATIONSTATEPARAMMASK;

typedef 
enum RILPERSODEACTIVATIONSTATEDEPERSOSTATE
    {
        RIL_DEPERSOSTATE_READY	= 0x1,
        RIL_DEPERSOSTATE_CK_REQUIRED	= 0x2,
        RIL_DEPERSOSTATE_PUK_REQUIRED	= 0x3,
        RIL_DEPERSOSTATE_PUK_BLOCKED	= 0x4,
        RIL_DEPERSOSTATE_MAX	= RIL_DEPERSOSTATE_PUK_BLOCKED
    } 	RILPERSODEACTIVATIONSTATEDEPERSOSTATE;

typedef struct RILPERSODEACTIVATIONSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    RILPERSODEACTIVATIONSTATEDEPERSOSTATE dwDePersoState;
    DWORD dwNumCKAttemptsLeft;
    DWORD dwNumPUKAttemptsLeft;
    } 	RILPERSODEACTIVATIONSTATE;

typedef struct RILPERSODEACTIVATIONSTATE *LPRILPERSODEACTIVATIONSTATE;

typedef struct RILDEACTIVATEPERSOPARAMS
    {
    DWORD dwPersoFeature;
    char szPassword[ 256 ];
    } 	RILDEACTIVATEPERSOPARAMS;

typedef struct RILDEACTIVATEPERSOPARAMS *LPRILDEACTIVATEPERSOPARAMS;

typedef 
enum RILUICCSERVICESTATE
    {
        RIL_UICCSERVICESTATE_NOTAVAILABLE	= 0,
        RIL_UICCSERVICESTATE_DISABLED	= 0x1,
        RIL_UICCSERVICESTATE_ENABLED	= 0x2,
        RIL_UICCSERVICESTATE_MAX	= RIL_UICCSERVICESTATE_ENABLED
    } 	RILUICCSERVICESTATE;

typedef struct RILUICCSERVICEINFO
    {
    DWORD cbSize;
    RILUICCSERVICESERVICE dwService;
    RILUICCSERVICESTATE dwState;
    } 	RILUICCSERVICEINFO;

typedef struct RILUICCSERVICEINFO *LPRILUICCSERVICEINFO;

typedef struct RILUICCSERVICEPARAMS
    {
    RILUICCSERVICE service;
    BOOL fHasLockVerification;
    RILUICCLOCKCREDENTIAL lockCredential;
    BOOL fEnable;
    } 	RILUICCSERVICEPARAMS;

typedef struct RILUICCSERVICEPARAMS *LPRILUICCSERVICEPARAMS;

typedef 
enum RILPHONEBOOKLOCATIONCAPS
    {
        RIL_CAPS_PBLOC_UNKOWN	= 0,
        RIL_CAPS_PBLOC_UICCFIXDIALING	= 0x1,
        RIL_CAPS_PBLOC_OWNNUMBERS	= 0x2,
        RIL_CAPS_PBLOC_UICCPHONEBOOK	= 0x4,
        RIL_CAPS_PBLOC_UICCSERVICEDIALING	= 0x8,
        RIL_CAPS_PBLOC_ALL	= 0xf
    } 	RILPHONEBOOKLOCATIONCAPS;

typedef 
enum RILPHONEENTRYSTORELOCATION
    {
        RIL_PBLOC_UNKNOWN	= RIL_CAPS_PBLOC_UNKOWN,
        RIL_PBLOC_UICCFIXDIALING	= RIL_CAPS_PBLOC_UICCFIXDIALING,
        RIL_PBLOC_OWNNUMBERS	= RIL_CAPS_PBLOC_OWNNUMBERS,
        RIL_PBLOC_UICCPHONEBOOK	= RIL_CAPS_PBLOC_UICCPHONEBOOK,
        RIL_PBLOC_UICCSERVICEDIALING	= RIL_CAPS_PBLOC_UICCSERVICEDIALING,
        RIL_PBLOC_ALL	= RIL_CAPS_PBLOC_ALL
    } 	RILPHONEENTRYSTORELOCATION;

typedef struct RILREADPHONEBOOKENTRIESPARAMS
    {
    HUICCAPP hUiccApp;
    RILPHONEENTRYSTORELOCATION dwStoreLocation;
    DWORD dwStartIndex;
    DWORD dwEndIndex;
    } 	RILREADPHONEBOOKENTRIESPARAMS;

typedef struct RILREADPHONEBOOKENTRIESPARAMS *LPRILREADPHONEBOOKENTRIESPARAMS;

typedef 
enum RILPHONEBOOKENTRYPARAMMASK
    {
        RIL_PARAM_PBE_INDEX	= 0x1,
        RIL_PARAM_PBE_ADDRESS	= 0x2,
        RIL_PARAM_PBE_TEXT	= 0x4,
        RIL_PARAM_PBE_SECONDNAME	= 0x8,
        RIL_PARAM_PBE_GROUPIDCOUNT	= 0x10,
        RIL_PARAM_PBE_GROUPID	= 0x20,
        RIL_PARAM_PBE_ADDITIONALNUMCOUNT	= 0x40,
        RIL_PARAM_PBE_ADDITIONALNUMSIZE	= 0x80,
        RIL_PARAM_PBE_ADDITIONALNUMOFFSET	= 0x100,
        RIL_PARAM_PBE_EMAILCOUNT	= 0x200,
        RIL_PARAM_PBE_EMAILSIZE	= 0x400,
        RIL_PARAM_PBE_EMAILOFFSET	= 0x800,
        RIL_PARAM_PBE_ALL	= 0xfff
    } 	RILPHONEBOOKENTRYPARAMMASK;

typedef struct RILPHONEBOOKENTRY
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwIndex;
    RILADDRESS raAddress;
    WCHAR wszText[ 256 ];
    WCHAR wszSecondName[ 256 ];
    DWORD dwGroupIdCount;
    DWORD rgdwGroupId[ 10 ];
    DWORD dwAdditionalNumCount;
    DWORD dwAdditionalNumSize;
    DWORD dwAdditionalNumOffset;
    DWORD dwEmailCount;
    DWORD dwEmailSize;
    DWORD dwEmailOffset;
    } 	RILPHONEBOOKENTRY;

typedef struct RILPHONEBOOKENTRY *LPRILPHONEBOOKENTRY;

typedef 
enum RILPHONEBOOKADDITIONALNUMBERPARAMMASK
    {
        RIL_PARAM_PBAN_ADDRESS	= 0x1,
        RIL_PARAM_PBAN_NUMID	= 0x2,
        RIL_PARAM_PBAN_ALL	= 0x3
    } 	RILPHONEBOOKADDITIONALNUMBERPARAMMASK;

typedef struct RILPHONEBOOKADDITIONALNUMBER
    {
    DWORD cbSize;
    DWORD dwParams;
    RILADDRESS raAddress;
    DWORD dwNumId;
    } 	RILPHONEBOOKADDITIONALNUMBER;

typedef struct RILPHONEBOOKADDITIONALNUMBER *LPRILPHONEBOOKADDITIONALNUMBER;

typedef 
enum RILPHONEBOOKMAILADDRESSPARAMMASK
    {
        RIL_PARAM_PBEA_ADDRESS	= 0x1,
        RIL_PARAM_PBEA_ALL	= 0x1
    } 	RILPHONEBOOKMAILADDRESSPARAMMASK;

typedef struct RILPHONEBOOKEMAILADDRESS
    {
    DWORD cbSize;
    DWORD dwParams;
    WCHAR wszAddress[ 256 ];
    } 	RILPHONEBOOKEMAILADDRESS;

typedef struct RILPHONEBOOKEMAILADDRESS *LPRILPHONEBOOKEMAILADDRESS;

typedef struct RILWRITEPHONEBOOKENTRYPARAMS
    {
    HUICCAPP hUiccApp;
    RILPHONEENTRYSTORELOCATION dwStoreLocation;
    BOOL fHasLockVerification;
    RILUICCLOCKCREDENTIAL lockVerification;
    RILPHONEBOOKENTRY pbEntry;
    } 	RILWRITEPHONEBOOKENTRYPARAMS;

typedef struct RILWRITEPHONEBOOKENTRYPARAMS *LPRILWRITEPHONEBOOKENTRYPARAMS;

typedef struct RILDELETEPHONEBOOKENTRYPARAMS
    {
    HUICCAPP hUiccApp;
    RILPHONEENTRYSTORELOCATION dwStoreLocation;
    DWORD dwIndex;
    BOOL fHasLockVerification;
    RILUICCLOCKCREDENTIAL lockVerification;
    } 	RILDELETEPHONEBOOKENTRYPARAMS;

typedef struct RILDELETEPHONEBOOKENTRYPARAMS *LPRILDELETEPHONEBOOKENTRYPARAMS;

typedef struct RILGETPHONEBOOKOPTIONSPARAMS
    {
    HUICCAPP hUiccApp;
    RILPHONEENTRYSTORELOCATION dwStoreLocation;
    } 	RILGETPHONEBOOKOPTIONSPARAMS;

typedef struct RILGETPHONEBOOKOPTIONSPARAMS *LPRILGETPHONEBOOKOPTIONSPARAMS;

typedef 
enum RILPHONEBOOKINFOPARAMMASK
    {
        RIL_PARAM_PBI_USED	= 0x1,
        RIL_PARAM_PBI_TOTAL	= 0x2,
        RIL_PARAM_PBI_ADDRESSLENGTH	= 0x4,
        RIL_PARAM_PBI_TEXTLENGTH	= 0x8,
        RIL_PARAM_PBI_MAXANR	= 0x10,
        RIL_PARAM_PBI_MAXANRLENGTH	= 0x20,
        RIL_PARAM_PBI_MAXAASTEXTLENGTH	= 0x40,
        RIL_PARAM_PBI_USEDAAS	= 0x80,
        RIL_PARAM_PBI_TOTALAAS	= 0x100,
        RIL_PARAM_PBI_MAXEMAILS	= 0x200,
        RIL_PARAM_PBI_MAXEMAILLENGTH	= 0x400,
        RIL_PARAM_PBI_MAXGROUPS	= 0x800,
        RIL_PARAM_PBI_MAXGASLENGTH	= 0x1000,
        RIL_PARAM_PBI_USEDGAS	= 0x2000,
        RIL_PARAM_PBI_TOTALGAS	= 0x4000,
        RIL_PARAM_PBI_MAXSNELENGTH	= 0x8000,
        RIL_PARAM_PBI_ALL	= 0xffff
    } 	RILPHONEBOOKINFOPARAMMASK;

typedef struct RILPHONEBOOKINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwUsed;
    DWORD dwTotal;
    DWORD dwMaxAddressLength;
    DWORD dwMaxTextLength;
    DWORD dwMaxAdditionalNumbers;
    DWORD dwMaxAdditionalNumberLength;
    DWORD dwMaxAdditionalNumberTextLength;
    DWORD dwUsedAdditionalNumberStrings;
    DWORD dwTotalAdditionalNumberStrings;
    DWORD dwMaxEmails;
    DWORD dwMaxEmailAddressLength;
    DWORD dwMaxGroups;
    DWORD dwMaxGroupStringLength;
    DWORD dwUsedGroupStrings;
    DWORD dwTotalGroupStrings;
    DWORD dwMaxSecondNameStringLength;
    } 	RILPHONEBOOKINFO;

typedef struct RILPHONEBOOKINFO *LPRILPHONEBOOKINFO;

typedef struct RILPHONEBOOKADDITIONALNUMBERSTRING
    {
    DWORD cbSize;
    DWORD dwNumId;
    WCHAR wszText[ 256 ];
    } 	RILPHONEBOOKADDITIONALNUMBERSTRING;

typedef struct RILPHONEBOOKADDITIONALNUMBERSTRING *LPRILPHONEBOOKADDITIONALNUMBERSTRING;

typedef struct RILWRITEADDITIONALNUMBERSTRINGPARAMS
    {
    HUICCAPP hUiccApp;
    RILPHONEBOOKADDITIONALNUMBERSTRING RilPBANS;
    } 	RILWRITEADDITIONALNUMBERSTRINGPARAMS;

typedef struct RILWRITEADDITIONALNUMBERSTRINGPARAMS *LPRILWRITEADDITIONALNUMBERSTRINGPARAMS;

typedef struct RILDELETEADDITIONALNUMBERSTRINGPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwNumId;
    } 	RILDELETEADDITIONALNUMBERSTRINGPARAMS;

typedef struct RILDELETEADDITIONALNUMBERSTRINGPARAMS *LPRILDELETEADDITIONALNUMBERSTRINGPARAMS;

typedef struct RILPHONEBOOKADDITIONALNUMBERINFO
    {
    DWORD cbSize;
    DWORD dwRilPBANSSize;
    RILPHONEBOOKADDITIONALNUMBERSTRING RilPBANS[ 1 ];
    } 	RILPHONEBOOKADDITIONALNUMBERINFO;

typedef struct RILPHONEBOOKADDITIONALNUMBERINFO *LPRILPHONEBOOKADDITIONALNUMBERINFO;

typedef 
enum RILEMERGENCYNUMBERPARAMMASK
    {
        RIL_PARAM_ENUM_EXECUTOR	= 0x1,
        RIL_PARAM_ENUM_UICC	= 0x2,
        RIL_PARAM_ENUM_CATEGORY	= 0x4,
        RIL_PARAM_ENUM_NUMBER	= 0x8,
        RIL_PARAM_ENUM_ALL	= 0xf
    } 	RILEMERGENCYNUMBERPARAMMASK;

typedef 
enum RILEMERGENCYNUMBERCATEGORY
    {
        RIL_ENUM_POLICE	= 0x1,
        RIL_ENUM_AMBULANCE	= 0x2,
        RIL_ENUM_FIRE_BRIGADE	= 0x4,
        RIL_ENUM_MARINE_GUARD	= 0x8,
        RIL_ENUM_MOUNTAIN_RESCUE	= 0x10,
        RIL_ENUM_MANUAL_ECALL	= 0x20,
        RIL_ENUM_AUTO_ECALL	= 0x40,
        RIL_ENUM_ALL	= 0x7f
    } 	RILEMERGENCYNUMBERCATEGORY;

typedef struct RILEMERGENCYNUMBER
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwCategory;
    WCHAR wszEmergencyNumber[ 8 ];
    } 	RILEMERGENCYNUMBER;

typedef struct RILEMERGENCYNUMBER *LPRILEMERGENCYNUMBER;

typedef struct RILEMERGENCYNUMBERSLIST
    {
    DWORD cbSize;
    DWORD dwRilENSize;
    RILEMERGENCYNUMBER RilEN[ 1 ];
    } 	RILEMERGENCYNUMBERSLIST;

typedef struct RILEMERGENCYNUMBERSLIST *LPRILEMERGENCYNUMBERSLIST;

typedef struct RILPHONEBOOKLOCATION
    {
    DWORD cbSize;
    HUICCAPP hUiccApp;
    RILPHONEENTRYSTORELOCATION dwStoreLocation;
    DWORD dwIndex;
    } 	RILPHONEBOOKLOCATION;

typedef struct RILPHONEBOOKLOCATION *LPRILPHONEBOOKLOCATION;

typedef struct RILPHONEBOOKREADYSTATE
    {
    DWORD cbSize;
    HUICCAPP hUiccApp;
    DWORD dwStoreLocations;
    } 	RILPHONEBOOKREADYSTATE;

typedef struct RILPHONEBOOKREADYSTATE *LPRILPHONEBOOKREADYSTATE;

typedef 
enum RILPHONEBOOKANSOPERATION
    {
        RIL_PHONEBOOK_ANSADDED	= 0,
        RIL_PHONEBOOK_ANSMODIFIED	= 0x1,
        RIL_PHONEBOOK_ANSDELETED	= 0x2,
        RIL_PHONEBOOK_MAX	= RIL_PHONEBOOK_ANSDELETED
    } 	RILPHONEBOOKANSOPERATION;

typedef struct RILADDITIONALNUMBERSTRINGUPDATE
    {
    DWORD cbSize;
    HUICCAPP hUiccApp;
    RILPHONEBOOKANSOPERATION dwOpType;
    DWORD dwNumId;
    WCHAR wszText[ 256 ];
    } 	RILADDITIONALNUMBERSTRINGUPDATE;

typedef struct RILADDITIONALNUMBERSTRINGUPDATE *LPRILADDITIONALNUMBERSTRINGUPDATE;

typedef 
enum RILRADIOCONFIGURATIONRADIOTYPE
    {
        RIL_RADIOTYPE_NONE	= 0,
        RIL_RADIOTYPE_SINGLE	= 0x1,
        RIL_RADIOTYPE_MULTIMODE	= 0x2,
        RIL_RADIOTYPE_1XCSFB	= 0x3,
        RIL_RADIOTYPE_SVLTE	= 0x4,
        RIL_RADIOTYPE_DUALSTANDBY	= 0x5,
        RIL_RADIOTYPE_DUALACTIVE	= 0x6,
        RIL_RADIOTYPE_SGLTE	= 0x7,
        RIL_RADIOTYPE_SVLTE_DUALACTIVE	= 0x8,
        RIL_RADIOTYPE_SGLTE_DUALACTIVE	= 0x9,
        RIL_RADIOTYPE_SRLTE	= 0xa,
        RIL_RADIOTYPE_MAX	= RIL_RADIOTYPE_SRLTE
    } 	RILRADIOCONFIGURATIONRADIOTYPE;

typedef struct RILRADIOCONFIGURATION
    {
    DWORD dwConfigId;
    RILRADIOCONFIGURATIONRADIOTYPE dwRadioType;
    DWORD dwSystemTypes[ 2 ];
    } 	RILRADIOCONFIGURATION;

typedef struct RILRADIOCONFIGURATION *LPRILRADIOCONFIGURATION;

typedef struct RILRADIOCONFIGURATIONS
    {
    DWORD dwNumberOfConfigurations;
    RILRADIOCONFIGURATION stConfigurations[ 1 ];
    } 	RILRADIOCONFIGURATIONS;

typedef struct RILRADIOCONFIGURATIONS *LPRILRADIOCONFIGURATIONS;

typedef 
enum RILEXECUTORFLAG
    {
        RIL_EXECUTORFLAG_ENABLED	= 0x1,
        RIL_EXECUTORFLAG_HIGHPRIORITY	= 0x2,
        RIL_EXECUTORFLAG_ALL	= 0x3
    } 	RILEXECUTORFLAG;

typedef struct RILEXECUTORCONFIG
    {
    DWORD cbSize;
    DWORD dwFlags;
    DWORD dwNumApps;
    HUICCAPP lphUiccApps[ 2 ];
    } 	RILEXECUTORCONFIG;

typedef struct RILEXECUTORCONFIG *LPRILEXECUTORCONFIG;

typedef struct RILSETEXECUTORCONFIGPARAMS
    {
    DWORD dwExecutor;
    RILEXECUTORCONFIG rilExecutorConfig;
    } 	RILSETEXECUTORCONFIGPARAMS;

typedef struct RILSETEXECUTORCONFIGPARAMS *LPRILSETEXECUTORCONFIGPARAMS;

typedef 
enum RILSYSTEMSELECTIONPREFSMODE
    {
        RIL_OPSELMODE_AUTOMATIC	= 0x1,
        RIL_OPSELMODE_MANUAL	= 0x2,
        RIL_OPSELMODE_MAX	= RIL_OPSELMODE_MANUAL
    } 	RILSYSTEMSELECTIONPREFSMODE;

typedef 
enum RILSYSTEMSELECTIONPREFSROAMINGMODE
    {
        RIL_ROAMMODE_HOMEONLY	= 0x1,
        RIL_ROAMMODE_AUTOMATIC	= 0x2,
        RIL_ROAMMODE_DOMESTIC	= 0x3,
        RIL_ROAMMODE_MAX	= RIL_ROAMMODE_DOMESTIC
    } 	RILSYSTEMSELECTIONPREFSROAMINGMODE;

typedef 
enum RILSYSTEMSELECTIONPREFSPARAMMASK
    {
        RIL_PARAM_SSP_EXECUTOR	= 0x1,
        RIL_PARAM_SSP_SYSTEMTYPES	= 0x2,
        RIL_PARAM_SSP_MODE	= 0x4,
        RIL_PARAM_SSP_PLMNINFO	= 0x8,
        RIL_PARAM_SSP_ROAMINGMODE	= 0x10,
        RIL_PARAM_SSP_ACQUISITIONORDERSIZE	= 0x20,
        RIL_PARAM_SSP_ACQUISITIONORDER	= 0x40,
        RIL_PARAM_SSP_ALL	= 0x7f
    } 	RILSYSTEMSELECTIONPREFSPARAMMASK;

typedef struct RILSYSTEMSELECTIONPREFS_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwSystemTypes;
    RILSYSTEMSELECTIONPREFSMODE dwMode;
    RILOPERATORNAMES plmnInfo;
    RILSYSTEMSELECTIONPREFSROAMINGMODE dwRoamingMode;
    } 	RILSYSTEMSELECTIONPREFS_V1;

typedef struct RILSYSTEMSELECTIONPREFS_V1 *LPRILSYSTEMSELECTIONPREFS_V1;

typedef struct RILSYSTEMSELECTIONPREFS_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwSystemTypes;
    RILSYSTEMSELECTIONPREFSMODE dwMode;
    RILOPERATORNAMES plmnInfo;
    RILSYSTEMSELECTIONPREFSROAMINGMODE dwRoamingMode;
    DWORD dwAcquisitionOrderSize;
    DWORD AcquisitionOrder[ 16 ];
    } 	RILSYSTEMSELECTIONPREFS_V2;

typedef struct RILSYSTEMSELECTIONPREFS_V2 *LPRILSYSTEMSELECTIONPREFS_V2;

typedef struct RILSYSTEMSELECTIONPREFS_V2 RILSYSTEMSELECTIONPREFS;

typedef struct RILSYSTEMSELECTIONPREFS_V2 *LPRILSYSTEMSELECTIONPREFS;

typedef 
enum RILSETSYSTEMSELECTIONPREFSFLAG
    {
        RIL_SSSPFLAG_NONE	= 0,
        RIL_SSSPFLAG_APPLYIMMEDIATELY	= 0x1,
        RIL_SSSPFLAG_ENFORCESCAN	= 0x2,
        RIL_SSSPFLAG_ALL	= 0x3
    } 	RILSETSYSTEMSELECTIONPREFSFLAG;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V1
    {
    DWORD dwFlags;
    RILSYSTEMSELECTIONPREFS_V1 rilSystemSelectionPrefs;
    } 	RILSETSYSTEMSELECTIONPREFSPARAMS_V1;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V1 *LPRILSETSYSTEMSELECTIONPREFSPARAMS_V1;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V2
    {
    DWORD dwFlags;
    RILSYSTEMSELECTIONPREFS rilSystemSelectionPrefs;
    } 	RILSETSYSTEMSELECTIONPREFSPARAMS_V2;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V2 *LPRILSETSYSTEMSELECTIONPREFSPARAMS_V2;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V2 RILSETSYSTEMSELECTIONPREFSPARAMS;

typedef struct RILSETSYSTEMSELECTIONPREFSPARAMS_V2 *LPRILSETSYSTEMSELECTIONPREFSPARAMS;

typedef struct RILGETOPERATORLISTPARAMS
    {
    DWORD dwExecutor;
    DWORD dwSystemTypes;
    } 	RILGETOPERATORLISTPARAMS;

typedef struct RILGETOPERATORLISTPARAMS *LPRILGETOPERATORLISTPARAMS;

typedef 
enum RILOPERATORINFOPARAMMASK
    {
        RIL_PARAM_OI_INDEX	= 0x1,
        RIL_PARAM_OI_STATUS	= 0x2,
        RIL_PARAM_OI_NAMES	= 0x4,
        RIL_PARAM_OI_ALL	= 0x7
    } 	RILOPERATORINFOPARAMMASK;

typedef 
enum RILOPERATORINFOSTATUS
    {
        RIL_OPSTATUS_UNKNOWN	= 0x1,
        RIL_OPSTATUS_AVAILABLE	= 0x2,
        RIL_OPSTATUS_CURRENT	= 0x3,
        RIL_OPSTATUS_FORBIDDEN	= 0x4,
        RIL_OPSTATUS_MAX	= RIL_OPSTATUS_FORBIDDEN
    } 	RILOPERATORINFOSTATUS;

typedef struct RILOPERATORINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwIndex;
    RILOPERATORINFOSTATUS dwStatus;
    RILOPERATORNAMES ronNames;
    } 	RILOPERATORINFO;

typedef struct RILOPERATORINFO *LPRILOPERATORINFO;

typedef 
enum RILGETPREFERENCEDOPERATORLISTFORMAT
    {
        RIL_OPFORMAT_LONG	= 0x1,
        RIL_OPFORMAT_SHORT	= 0x2,
        RIL_OPFORMAT_NUM	= 0x3,
        RIL_OPFORMAT_MAX	= RIL_OPFORMAT_NUM
    } 	RILGETPREFERENCEDOPERATORLISTFORMAT;

typedef struct RILGETPREFERREDOPERATORLISTPARAMS
    {
    HUICCAPP hUiccApp;
    RILGETPREFERENCEDOPERATORLISTFORMAT dwFormat;
    } 	RILGETPREFERREDOPERATORLISTPARAMS;

typedef struct RILGETPREFERREDOPERATORLISTPARAMS *LPRILGETPREFERREDOPERATORLISTPARAMS;

typedef 
enum RILREGSTATUSINFOPARAMMASK
    {
        RIL_PARAM_REGSI_EXECUTOR	= 0x1,
        RIL_PARAM_REGSI_HUICCAPP	= 0x2,
        RIL_PARAM_REGSI_REGSTATUS	= 0x4,
        RIL_PARAM_REGSI_ACCESSTECHNOLOGY	= 0x8,
        RIL_PARAM_REGSI_SYSTEMCAPS	= 0x10,
        RIL_PARAM_REGSI_REGREJECTREASON	= 0x20,
        RIL_PARAM_REGSI_CURRENTOPERATOR	= 0x40,
        RIL_PARAM_REGSI_VOICEDOMAIN	= 0x80,
        RIL_PARAM_REGSI_NETWORKCODE	= 0x100,
        RIL_PARAM_REGSI_ALL	= 0x1ff
    } 	RILREGSTATUSINFOPARAMMASK;

typedef 
enum RILSYSTEMCAPS
    {
        RIL_SYSTEMCAPS_NONE	= 0,
        RIL_SYSTEMCAPS_VOICEDATA	= 0x1,
        RIL_SYSTEMCAPS_ALL	= 0x1
    } 	RILSYSTEMCAPS;

typedef 
enum RILVOICEDOMAIN
    {
        RIL_VOICE_DOMAIN_NONE	= 0,
        RIL_VOICE_DOMAIN_3GPP	= 0x1,
        RIL_VOICE_DOMAIN_3GPP2	= 0x2,
        RIL_VOICE_DOMAIN_IMS	= 0x3,
        RIL_VOICE_DOMAIN_MAX	= RIL_VOICE_DOMAIN_IMS
    } 	RILVOICEDOMAIN;

typedef struct RILNETWORKCODE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwMCC;
    DWORD dwMNC;
    DWORD dwSID;
    DWORD dwNID;
    DWORD dwRI;
    } 	RILNETWORKCODE;

typedef struct RILNETWORKCODE *LPRILNETWORKCODE;

typedef struct RILREGSTATUSINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    RILREGSTAT dwRegStatus;
    RILACCESSTECHNOLOGY ratAccessTechnology;
    DWORD dwSystemCaps;
    DWORD dwRegRejectReason;
    RILOPERATORNAMES ronCurrentOperator;
    RILVOICEDOMAIN dwVoiceDomain;
    RILNETWORKCODE rncNetworkCode;
    } 	RILREGSTATUSINFO;

typedef struct RILREGSTATUSINFO *LPRILREGSTATUSINFO;

typedef 
enum RILRILREGSTATUSINFOREJECTREASON
    {
        RIL_REGREJECTREASON_NULL	= 0,
        RIL_REGREJECTREASON_IMSIUNK_HLR	= 0x2,
        RIL_REGREJECTREASON_ILLEGAL_MS	= 0x3,
        RIL_REGREJECTREASON_IMSIUNK_VLR	= 0x4,
        RIL_REGREJECTREASON_IMSI_NOTACCEPTED	= 0x5,
        RIL_REGREJECTREASON_ILLEGAL_ME	= 0x6,
        RIL_REGREJECTREASON_PLMN_NOTALLOWED	= 0xb,
        RIL_REGREJECTREASON_LOCAREA_NOTALLOWED	= 0xc,
        RIL_REGREJECTREASON_ROAMING_NOTALLOWED	= 0xd,
        RIL_REGREJECTREASON_NOSUITABLECELL	= 0xf,
        RIL_REGREJECTREASON_NETWORKFAILURE	= 0x11,
        RIL_REGREJECTREASON_MACFAILURE	= 0x14,
        RIL_REGREJECTREASON_SYNCHFAILURE	= 0x15,
        RIL_REGREJECTREASON_CONGESTION	= 0x16,
        RIL_REGREJECTREASON_GSMAUTH_NOTACCEPTED	= 0x17,
        RIL_REGREJECTREASON_CSG_NOTAUTHORIZED	= 0x19,
        RIL_REGREJECTREASON_SVCOPT_NOTSUPPORTED	= 0x20,
        RIL_REGREJECTREASON_REQSVCOPT_NOTSUBSCRIBED	= 0x21,
        RIL_REGREJECTREASON_SVCOPT_OUTOFORDER	= 0x22
    } 	RILRILREGSTATUSINFOREJECTREASON;

typedef struct RILSETPREFERREDOPERATORLISTPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwPreferredListSize;
    RILOPERATORNAMES PreferredList[ 1 ];
    } 	RILSETPREFERREDOPERATORLISTPARAMS;

typedef struct RILSETPREFERREDOPERATORLISTPARAMS *LPRILSETPREFERREDOPERATORLISTPARAMS;

typedef struct RILSETEXECUTORRFSTATEPARAMS
    {
    DWORD dwExecutor;
    BOOL fExecutorRFState;
    } 	RILSETEXECUTORRFSTATEPARAMS;

typedef struct RILSETEXECUTORRFSTATEPARAMS *LPRILSETEXECUTORRFSTATEPARAMS;

typedef 
enum RILEXECUTORRFSTATEPARAMMASK
    {
        RIL_PARAM_GERFS_EXECUTOR	= 0x1,
        RIL_PARAM_GERFS_STATE	= 0x2,
        RIL_PARAM_GERFS_ALL	= 0x3
    } 	RILEXECUTORRFSTATEPARAMMASK;

typedef 
enum RILPSMEDIAPREFERENCE
    {
        RIL_PSMPREF_UNKNOWN	= 0,
        RIL_PSMPREF_WIFIONLY	= 0x1,
        RIL_PSMPREF_WIFIPREFERRED	= 0x2,
        RIL_PSMPREF_CELLONLY	= 0x3,
        RIL_PSMPREF_CELLPREFERRED	= 0x4,
        RIL_PSMPREF_NUMBER_OF_VALUES	= RIL_PSMPREF_CELLPREFERRED
    } 	RILPSMEDIAPREFERENCE;

typedef struct RILPSMEDIACONFIGURATION
    {
    RILPSMEDIAPREFERENCE dwMediaPreference;
    DWORD dwServiceType;
    } 	RILPSMEDIACONFIGURATION;

typedef struct RILPSMEDIACONFIGURATION *LPRILPSMEDIACONFIGURATION;

typedef struct RILPSMEDIACONFIGURATIONSET
    {
    DWORD cbSize;
    DWORD dwExecutor;
    DWORD dwNumMediaConfiguration;
    RILPSMEDIACONFIGURATION stMediaConfiguration[ 1 ];
    } 	RILPSMEDIACONFIGURATIONSET;

typedef struct RILPSMEDIACONFIGURATIONSET *LPRILPSMEDIACONFIGURATIONSET;

typedef struct RILEXECUTORRFSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    BOOL fExecutorRFState;
    } 	RILEXECUTORRFSTATE;

typedef struct RILEXECUTORRFSTATE *LPRILEXECUTORRFSTATE;

typedef 
enum RILLOCATIONINFOPARAMMASK
    {
        RIL_PARAM_LU_EXECUTOR	= 0x1,
        RIL_PARAM_LU_HUICCAPP	= 0x2,
        RIL_PARAM_LU_LAC	= 0x4,
        RIL_PARAM_LU_TAC	= 0x8,
        RIL_PARAM_LU_CELLID	= 0x10,
        RIL_PARAM_LU_ALL	= 0x1f
    } 	RILLOCATIONINFOPARAMMASK;

typedef struct RILLOCATIONINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD hUiccApp;
    DWORD dwLocationAreaCode;
    DWORD dwTrackingAreaCode;
    DWORD dwCellID;
    } 	RILLOCATIONINFO;

typedef struct RILLOCATIONINFO *LPRILLOCATIONINFO;

typedef 
enum RILNETWORKCODEPARAMMASK
    {
        RIL_PARAM_NETWORKCODE_EXECUTOR	= 0x1,
        RIL_PARAM_NETWORKCODE_MCC	= 0x2,
        RIL_PARAM_NETWORKCODE_MNC	= 0x4,
        RIL_PARAM_NETWORKCODE_SID	= 0x8,
        RIL_PARAM_NETWORKCODE_NID	= 0x10,
        RIL_PARAM_NETWORKCODE_RI	= 0x20,
        RIL_PARAM_NETWORKCODE_ALL	= 0x3f
    } 	RILNETWORKCODEPARAMMASK;

typedef 
enum RILPROVISIONSTATUSPROVISIONSTATUS
    {
        RIL_PROVISIONSTAT_STARTED	= 0x1,
        RIL_PROVISIONSTAT_SUCCESS	= 0x2,
        RIL_PROVISIONSTAT_FAILURE_END	= 0x3,
        RIL_PROVISIONSTAT_FAILURE_RETRY	= 0x4,
        RIL_PROVISIONSTAT_NEEDED	= 0x5,
        RIL_PROVISIONSTAT_BIP_STARTED	= 0x6,
        RIL_PROVISIONSTAT_BIP_SUCCESS	= 0x7,
        RIL_PROVISIONSTAT_MAX	= RIL_PROVISIONSTAT_BIP_SUCCESS
    } 	RILPROVISIONSTATUSPROVISIONSTATUS;

typedef struct RILPROVISIONSTATUS
    {
    DWORD cbSize;
    DWORD dwExecutor;
    RILPROVISIONSTATUSPROVISIONSTATUS dwProvisionStatus;
    } 	RILPROVISIONSTATUS;

typedef struct RILPROVISIONSTATUS *LPRILPROVISIONSTATUS;

typedef struct RILEXECUTORSTATE
    {
    DWORD cbSize;
    DWORD dwExecutor;
    DWORD dwFlags;
    } 	RILEXECUTORSTATE;

typedef struct RILEXECUTORSTATE *LPRILEXECUTORSTATE;

typedef 
enum RILSIGNALQUALITYPARAMMASK
    {
        RIL_PARAM_SQ_EXECUTOR	= 0x1,
        RIL_PARAM_SQ_SYSTEMTYPE	= 0x2,
        RIL_PARAM_SQ_NUMSIGNALBARS	= 0x4,
        RIL_PARAM_SQ_SIGNALSTRENGTH	= 0x8,
        RIL_PARAM_SQ_SNR	= 0x10,
        RIL_PARAM_SQ_ALL	= 0x1f
    } 	RILSIGNALQUALITYPARAMMASK;

typedef struct RILSIGNALQUALITY
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwSystemType;
    int nNumSignalBars;
    int nSignalStrength;
    int nSNRStrength;
    } 	RILSIGNALQUALITY;

typedef struct RILSIGNALQUALITY *LPRILSIGNALQUALITY;

typedef 
enum RILSIGNALQUALITYCAPS
    {
        RIL_CAPS_SIGNALQUALITY_NOTIFICATION	= 0x1,
        RIL_CAPS_SIGNALQUALITY_POLLING	= 0x2,
        RIL_CAPS_SIGNALQUALITY_MAX	= RIL_CAPS_SIGNALQUALITY_POLLING
    } 	RILSIGNALQUALITYCAPS;

typedef 
enum RILNITZNOTIFICATIONCAPS
    {
        RIL_CAPS_NITZ_DISABLED	= 0x1,
        RIL_CAPS_NITZ_ENABLED	= 0x2,
        RIL_CAPS_NITZ_MAX	= RIL_CAPS_NITZ_ENABLED
    } 	RILNITZNOTIFICATIONCAPS;

typedef 
enum RILNITZINFOPARAMMASK
    {
        RIL_PARAM_NITZ_EXECUTOR	= 0x1,
        RIL_PARAM_NITZ_TIMEZONEOFFSET	= 0x2,
        RIL_PARAM_NITZ_DAYLIGHTSAVINGOFFSET	= 0x4,
        RIL_PARAM_NITZ_SYSTEMTIME	= 0x8,
        RIL_PARAM_NITZ_SYSTEMTYPE	= 0x10,
        RIL_PARAM_NITZ_ALL	= 0x1f
    } 	RILNITZINFOPARAMMASK;

typedef struct RILNITZINFO_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    int TimeZoneOffsetMinutes;
    int DaylightSavingOffsetMinutes;
    RILSYSTEMTIME SysTime;
    } 	RILNITZINFO_V1;

typedef struct RILNITZINFO_V1 *LPRILNITZINFO_V1;

typedef struct RILNITZINFO_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    int TimeZoneOffsetMinutes;
    int DaylightSavingOffsetMinutes;
    RILSYSTEMTIME SysTime;
    DWORD dwSystemTypes;
    } 	RILNITZINFO_V2;

typedef struct RILNITZINFO_V2 *LPRILNITZINFO_V2;

typedef struct RILNITZINFO_V2 RILNITZINFO;

typedef struct RILNITZINFO_V2 *LPRILNITZINFO;

typedef struct RILUICCTOOLKITPROFILE
    {
    DWORD cbSize;
    DWORD dwProfileSize;
    BYTE bProfile[ 1 ];
    } 	RILUICCTOOLKITPROFILE;

typedef struct RILUICCTOOLKITPROFILE *LPRILUICCTOOLKITPROFILE;

typedef struct RILSENDUICCTOOLKITCMDRESPONSEPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwDetailsSize;
    BYTE bDetails[ 1 ];
    } 	RILSENDUICCTOOLKITCMDRESPONSEPARAMS;

typedef struct RILSENDUICCTOOLKITCMDRESPONSEPARAMS *LPRILSENDUICCTOOLKITCMDRESPONSEPARAMS;

typedef struct RILSENDUICCTOOLKITENVELOPEPARAMS
    {
    DWORD dwSlotIndex;
    DWORD dwEnvelopeSize;
    BYTE bEnvelope[ 1 ];
    } 	RILSENDUICCTOOLKITENVELOPEPARAMS;

typedef struct RILSENDUICCTOOLKITENVELOPEPARAMS *LPRILSENDUICCTOOLKITENVELOPEPARAMS;

typedef struct RILUICCTOOLKITCMD
    {
    DWORD cbSize;
    DWORD dwSlotIndex;
    BOOL fTerminalResponseNeeded;
    DWORD dwDetailsSize;
    BYTE bDetails[ 1 ];
    } 	RILUICCTOOLKITCMD;

typedef struct RILUICCTOOLKITCMD *LPRILUICCTOOLKITCMD;

typedef 
enum RILCALLSUPPORTCAPS
    {
        RIL_CAPS_CALLSUPPORT_CCBS	= 0x1,
        RIL_CAPS_CALLSUPPORT_CD	= 0x2,
        RIL_CAPS_CALLSUPPORT_CNAP	= 0x4,
        RIL_CAPS_CALLSUPPORT_CUG	= 0x8,
        RIL_CAPS_CALLSUPPORT_EMLPP	= 0x10,
        RIL_CAPS_CALLSUPPORT_FM	= 0x20,
        RIL_CAPS_CALLSUPPORT_MSP	= 0x40,
        RIL_CAPS_CALLSUPPORT_USSD_PHASE2	= 0x80,
        RIL_CAPS_CALLSUPPORT_USS	= 0x100,
        RIL_CAPS_CALLSUPPORT_ALL	= 0x1ff
    } 	RILCALLSUPPORTCAPS;

typedef 
enum RILDIALPARAMSOPTIONS
    {
        RIL_DIALOPT_NONE	= 0,
        RIL_DIALOPT_RESTRICTID	= 0x1,
        RIL_DIALOPT_PRESENTID	= 0x2,
        RIL_DIALOPT_ANYEXECUTORFOREMERGENCY	= 0x4,
        RIL_DIALOPT_RTTFULL	= 0x8,
        RIL_DIALOPT_ALL	= 0xf
    } 	RILDIALPARAMSOPTIONS;

typedef struct RILDIALPARAMS_V1
    {
    DWORD dwExecutor;
    RILADDRESS raAddress;
    DWORD dwOptions;
    } 	RILDIALPARAMS_V1;

typedef struct RILDIALPARAMS_V1 *LPRILDIALPARAMS_V1;

typedef struct RILDIALPARAMS_V2
    {
    DWORD dwExecutor;
    RILADDRESS raAddress;
    DWORD dwOptions;
    RILCALLTYPE dwType;
    BOOL fHasMediaOffer;
    RILCALLMEDIAOFFERANSWERSET rcmMediaOffer;
    } 	RILDIALPARAMS_V2;

typedef struct RILDIALPARAMS_V2 *LPRILDIALPARAMS_V2;

typedef struct RILDIALPARAMS_V2 RILDIALPARAMS;

typedef struct RILDIALPARAMS_V2 *LPRILDIALPARAMS;

typedef 
enum RILMANAGECALLPARAMSCOMMAND
    {
        RIL_CALLCMD_RELEASEACTIVE_ACCEPTHELD	= 0x2,
        RIL_CALLCMD_RELEASECALL	= 0x3,
        RIL_CALLCMD_HOLDACTIVE_ACCEPTHELD	= 0x4,
        RIL_CALLCMD_HOLDALLBUTONE	= 0x5,
        RIL_CALLCMD_ADDHELDTOCONF	= 0x6,
        RIL_CALLCMD_ADDHELDTOCONF_DISCONNECT	= 0x7,
        RIL_CALLCMD_RELEASEPROCEEDING	= 0xa,
        RIL_CALLCMD_RELEASEALLCALLS	= 0xb,
        RIL_CALLCMD_RELEASEHELDCONFCALL	= 0xc,
        RIL_CALLCMD_ACCEPTINCOMINGCALL	= 0xd,
        RIL_CALLCMD_OFFERMEDIA	= 0xe,
        RIL_CALLCMD_ANSWERMEDIAOFFER	= 0xf,
        RIL_CALLCMD_BLINDCALLTRANSFER	= 0x10,
        RIL_CALLCMD_ASSUREDCALLTRANSFER	= 0x11,
        RIL_CALLCMD_CONSULTATIVECALLTRANSFER	= 0x12,
        RIL_CALLCMD_RTT	= 0x13,
        RIL_CALLCMD_MAX	= RIL_CALLCMD_RTT
    } 	RILMANAGECALLPARAMSCOMMAND;

typedef struct RILMANAGECALLSPARAMS_V1
    {
    DWORD dwExecutor;
    RILMANAGECALLPARAMSCOMMAND dwCommand;
    DWORD dwID;
    } 	RILMANAGECALLSPARAMS_V1;

typedef struct RILMANAGECALLSPARAMS_V1 *LPRILMANAGECALLSPARAMS_V1;

typedef struct RILMANAGECALLSPARAMS_V2
    {
    DWORD dwExecutor;
    RILMANAGECALLPARAMSCOMMAND dwCommand;
    DWORD dwID;
    BOOL fHasOfferAnswer;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    } 	RILMANAGECALLSPARAMS_V2;

typedef struct RILMANAGECALLSPARAMS_V2 *LPRILMANAGECALLSPARAMS_V2;

typedef struct RILMANAGECALLSPARAMS_V3
    {
    DWORD dwExecutor;
    RILMANAGECALLPARAMSCOMMAND dwCommand;
    DWORD dwID;
    BOOL fHasOfferAnswer;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    RILADDRESS raAddress;
    } 	RILMANAGECALLSPARAMS_V3;

typedef struct RILMANAGECALLSPARAMS_V3 *LPRILMANAGECALLSPARAMS_V3;

typedef struct RILMANAGECALLSPARAMS_V4
    {
    DWORD dwExecutor;
    RILMANAGECALLPARAMSCOMMAND dwCommand;
    DWORD dwID;
    BOOL fHasOfferAnswer;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    RILADDRESS raAddress;
    RILCALLRTTACTION dwRTTAction;
    } 	RILMANAGECALLSPARAMS_V4;

typedef struct RILMANAGECALLSPARAMS_V4 *LPRILMANAGECALLSPARAMS_V4;

typedef struct RILMANAGECALLSPARAMS_V4 RILMANAGECALLSPARAMS;

typedef struct RILMANAGECALLSPARAMS_V4 *LPRILMANAGECALLSPARAMS;

typedef 
enum RILEMERGENCYMODECONTROLPARAMSCONTROL
    {
        RIL_EMC_EXIT_CDMA_ECBM	= 0x1,
        RIL_EMC_OTHER_MODEM_IN_EMERGECY_MODE	= 0x2,
        RIL_EMC_ALL_MODEMS_ARE_IN_NORMAL_MODE	= 0x3,
        RIL_EMC_MAX	= RIL_EMC_ALL_MODEMS_ARE_IN_NORMAL_MODE
    } 	RILEMERGENCYMODECONTROLPARAMSCONTROL;

typedef struct RILEMERGENCYMODECONTROLPARAMS
    {
    DWORD dwExecutor;
    RILEMERGENCYMODECONTROLPARAMSCONTROL dwEmergencyModeControl;
    } 	RILEMERGENCYMODECONTROLPARAMS;

typedef struct RILEMERGENCYMODECONTROLPARAMS *LPRILEMERGENCYMODECONTROLPARAMS;

typedef 
enum RILCALLFORWARDINGSETTINGSREASON
    {
        RIL_FWDREASON_UNCONDITIONAL	= 0x1,
        RIL_FWDREASON_MOBILEBUSY	= 0x2,
        RIL_FWDREASON_NOREPLY	= 0x3,
        RIL_FWDREASON_UNREACHABLE	= 0x4,
        RIL_FWDREASON_ALLFORWARDING	= 0x5,
        RIL_FWDREASON_ALLCONDITIONAL	= 0x6,
        RIL_FWDREASON_MAX	= RIL_FWDREASON_ALLCONDITIONAL
    } 	RILCALLFORWARDINGSETTINGSREASON;

typedef struct RILGETCALLFORWARDINGPARAMS
    {
    DWORD dwExecutor;
    RILCALLFORWARDINGSETTINGSREASON dwReason;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    } 	RILGETCALLFORWARDINGPARAMS;

typedef struct RILGETCALLFORWARDINGPARAMS *LPRILGETCALLFORWARDINGPARAMS;

typedef 
enum RILCALLFORWARDINGSETTINGSPARAMMASK
    {
        RIL_PARAM_CFS_STATUS	= 0x1,
        RIL_PARAM_CFS_INFOCLASSES	= 0x2,
        RIL_PARAM_CFS_ADDRESS	= 0x4,
        RIL_PARAM_CFS_SUBADDRESS	= 0x8,
        RIL_PARAM_CFS_DELAYTIME	= 0x10,
        RIL_PARAM_CFS_ALL	= 0x1f
    } 	RILCALLFORWARDINGSETTINGSPARAMMASK;

typedef 
enum RILSERVICESETTINGSSTATUS
    {
        RIL_SVCSTAT_UNKNOWN	= 0x1,
        RIL_SVCSTAT_DISABLED	= 0x2,
        RIL_SVCSTAT_ENABLED	= 0x3,
        RIL_SVCSTAT_DEFAULT	= 0x4,
        RIL_SVCSTAT_MAX	= RIL_SVCSTAT_DEFAULT
    } 	RILSERVICESETTINGSSTATUS;

typedef struct RILCALLFORWARDINGSETTINGS
    {
    DWORD cbSize;
    DWORD dwParams;
    RILSERVICESETTINGSSTATUS dwStatus;
    DWORD dwInfoClasses;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    DWORD dwDelayTime;
    } 	RILCALLFORWARDINGSETTINGS;

typedef struct RILCALLFORWARDINGSETTINGS *LPRILCALLFORWARDINGSETTINGS;

typedef struct RILSETCALLFORWARDINGSTATUSPARAMS
    {
    DWORD dwExecutor;
    RILCALLFORWARDINGSETTINGSREASON dwReason;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    RILSERVICESETTINGSSTATUS dwStatus;
    } 	RILSETCALLFORWARDINGSTATUSPARAMS;

typedef struct RILSETCALLFORWARDINGSTATUSPARAMS *LPRILSETCALLFORWARDINGSTATUSPARAMS;

typedef struct RILADDCALLFORWARDINGPARAMS
    {
    DWORD dwExecutor;
    RILCALLFORWARDINGSETTINGSREASON dwReason;
    RILCALLFORWARDINGSETTINGS rcfsSettings;
    } 	RILADDCALLFORWARDINGPARAMS;

typedef struct RILADDCALLFORWARDINGPARAMS *LPRILADDCALLFORWARDINGPARAMS;

typedef struct RILREMOVECALLFORWARDINGPARAMS
    {
    DWORD dwExecutor;
    RILCALLFORWARDINGSETTINGSREASON dwReason;
    DWORD dwInfoClasses;
    } 	RILREMOVECALLFORWARDINGPARAMS;

typedef struct RILREMOVECALLFORWARDINGPARAMS *LPRILREMOVECALLFORWARDINGPARAMS;

typedef 
enum RILCALLBARRINGSTATUSPARAMSTYPE
    {
        RIL_BARRTYPE_ALLOUTGOING	= 0x1,
        RIL_BARRTYPE_OUTGOINGINT	= 0x2,
        RIL_BARRTYPE_OUTGOINGINTEXTOHOME	= 0x3,
        RIL_BARRTYPE_ALLINCOMING	= 0x4,
        RIL_BARRTYPE_INCOMINGROAMING	= 0x5,
        RIL_BARRTYPE_INCOMINGNOTINUICC	= 0x6,
        RIL_BARRTYPE_ALLBARRING	= 0x7,
        RIL_BARRTYPE_ALLOUTGOINGBARRING	= 0x8,
        RIL_BARRTYPE_ALLINCOMINGBARRING	= 0x9,
        RIL_BARRTYPE_ALL	= RIL_BARRTYPE_ALLINCOMINGBARRING
    } 	RILCALLBARRINGSTATUSPARAMSTYPE;

typedef struct RILGETCALLBARRINGSTATUSPARAMS
    {
    DWORD dwExecutor;
    RILCALLBARRINGSTATUSPARAMSTYPE dwType;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    } 	RILGETCALLBARRINGSTATUSPARAMS;

typedef struct RILGETCALLBARRINGSTATUSPARAMS *LPRILGETCALLBARRINGSTATUSPARAMS;

typedef 
enum RILCALLBARRINGSTATUSPARAMSSTATUS
    {
        RIL_BARRINGSTATUS_DISABLED	= 0x1,
        RIL_BARRINGSTATUS_ENABLED	= 0x2,
        RIL_BARRINGSTATUS_MAX	= RIL_BARRINGSTATUS_ENABLED
    } 	RILCALLBARRINGSTATUSPARAMSSTATUS;

typedef struct RILSETCALLBARRINGSTATUSPARAMS
    {
    DWORD dwExecutor;
    RILCALLBARRINGSTATUSPARAMSTYPE dwType;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    BOOL fPassword;
    char szPassword[ 256 ];
    RILCALLBARRINGSTATUSPARAMSSTATUS dwStatus;
    } 	RILSETCALLBARRINGSTATUSPARAMS;

typedef struct RILSETCALLBARRINGSTATUSPARAMS *LPRILSETCALLBARRINGSTATUSPARAMS;

typedef struct RILCHANGECALLBARRINGPASSWORDPARAMS
    {
    DWORD dwExecutor;
    RILCALLBARRINGSTATUSPARAMSTYPE dwType;
    char szOldPassword[ 256 ];
    char szNewPassword[ 256 ];
    char szConfirmPassword[ 256 ];
    } 	RILCHANGECALLBARRINGPASSWORDPARAMS;

typedef struct RILCHANGECALLBARRINGPASSWORDPARAMS *LPRILCHANGECALLBARRINGPASSWORDPARAMS;

typedef struct RILGETCALLWAITINGSETTINGSPARAMS
    {
    DWORD dwExecutor;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    } 	RILGETCALLWAITINGSETTINGSPARAMS;

typedef struct RILGETCALLWAITINGSETTINGSPARAMS *LPRILGETCALLWAITINGSETTINGSPARAMS;

typedef struct RILSETCALLWAITINGSTATUSPARAMS
    {
    DWORD dwExecutor;
    BOOL fAllClasses;
    DWORD dwInfoClasses;
    RILSERVICESETTINGSSTATUS dwStatus;
    } 	RILSETCALLWAITINGSTATUSPARAMS;

typedef struct RILSETCALLWAITINGSTATUSPARAMS *LPRILSETCALLWAITINGSTATUSPARAMS;

typedef 
enum RILCALLERIDSETTINGSPARAMMASK
    {
        RIL_PARAM_CIDS_EXECUTOR	= 0x1,
        RIL_PARAM_CIDS_PROVISIONING	= 0x2,
        RIL_PARAM_CIDS_STATUS	= 0x4,
        RIL_PARAM_CIDS_ALL	= 0x7
    } 	RILCALLERIDSETTINGSPARAMMASK;

typedef 
enum RILSERVICEPROVISIONINGSTATUS
    {
        RIL_SVCPROV_UNKNOWN	= 0x1,
        RIL_SVCPROV_NOTPROVISIONED	= 0x2,
        RIL_SVCPROV_PROVISIONED	= 0x3,
        RIL_SVCPROV_TEMPMODERESTRICTED	= 0x4,
        RIL_SVCPROV_TEMPMODEALLOWED	= 0x5,
        RIL_SVCPROV_MAX	= RIL_SVCPROV_TEMPMODEALLOWED
    } 	RILSERVICEPROVISIONINGSTATUS;

typedef struct RILCALLERIDSETTINGS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSERVICESETTINGSSTATUS dwStatus;
    RILSERVICEPROVISIONINGSTATUS dwProvisioning;
    } 	RILCALLERIDSETTINGS;

typedef struct RILCALLERIDSETTINGS *LPRILCALLERIDSETTINGS;

typedef 
enum RILDIALEDIDSETTINGSPARAMMASK
    {
        RIL_PARAM_DIDS_EXECUTOR	= 0x1,
        RIL_PARAM_DIDS_PROVISIONING	= 0x2,
        RIL_PARAM_DIDS_STATUS	= 0x4,
        RIL_PARAM_DIDS_ALL	= 0x7
    } 	RILDIALEDIDSETTINGSPARAMMASK;

typedef struct RILDIALEDIDSETTINGS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSERVICESETTINGSSTATUS dwStatus;
    RILSERVICEPROVISIONINGSTATUS dwProvisioning;
    } 	RILDIALEDIDSETTINGS;

typedef struct RILDIALEDIDSETTINGS *LPRILDIALEDIDSETTINGS;

typedef 
enum RILHIDECONNECTEDIDSETTINGSPARAMMASK
    {
        RIL_PARAM_HCIDS_EXECUTOR	= 0x1,
        RIL_PARAM_HCIDS_STATUS	= 0x2,
        RIL_PARAM_HCIDS_PROVISIONING	= 0x4,
        RIL_PARAM_HCIDS_ALL	= 0x7
    } 	RILHIDECONNECTEDIDSETTINGSPARAMMASK;

typedef struct RILHIDECONNECTEDIDSETTINGS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSERVICESETTINGSSTATUS dwStatus;
    RILSERVICEPROVISIONINGSTATUS dwProvisioning;
    } 	RILHIDECONNECTEDIDSETTINGS;

typedef struct RILHIDECONNECTEDIDSETTINGS *LPRILHIDECONNECTEDIDSETTINGS;

typedef 
enum RILHIDEIDSETTINGSPARAMMASK
    {
        RIL_PARAM_HIDS_EXECUTOR	= 0x1,
        RIL_PARAM_HIDS_STATUS	= 0x2,
        RIL_PARAM_HIDS_PROVISIONING	= 0x4,
        RIL_PARAM_HIDS_ALL	= 0x7
    } 	RILHIDEIDSETTINGSPARAMMASK;

typedef struct RILHIDEIDSETTINGS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSERVICESETTINGSSTATUS dwStatus;
    RILSERVICEPROVISIONINGSTATUS dwProvisioning;
    } 	RILHIDEIDSETTINGS;

typedef struct RILHIDEIDSETTINGS *LPRILHIDEIDSETTINGS;

typedef struct RILSENDFLASHPARAMS
    {
    DWORD dwExecutor;
    RILADDRESS raAddress;
    } 	RILSENDFLASHPARAMS;

typedef struct RILSENDFLASHPARAMS *LPRILSENDFLASHPARAMS;

typedef struct RILSENDSUPSERVICEDATAPARAMS
    {
    DWORD dwExecutor;
    DWORD dwDataSize;
    WCHAR wszData[ 1 ];
    } 	RILSENDSUPSERVICEDATAPARAMS;

typedef struct RILSENDSUPSERVICEDATAPARAMS *LPRILSENDSUPSERVICEDATAPARAMS;

typedef struct RILSENDSUPSERVICEDATARESPONSEPARAMS
    {
    DWORD dwExecutor;
    DWORD dwDataSize;
    WCHAR wszData[ 1 ];
    } 	RILSENDSUPSERVICEDATARESPONSEPARAMS;

typedef struct RILSENDSUPSERVICEDATARESPONSEPARAMS *LPRILSENDSUPSERVICEDATARESPONSEPARAMS;

typedef struct RILSETEXECUTORFOCUSPARAMS
    {
    DWORD dwNumberOfExecutors;
    BOOL fFocusStates[ 2 ];
    } 	RILSETEXECUTORFOCUSPARAMS;

typedef struct RILSETEXECUTORFOCUSPARAMS *LPRILSETEXECUTORFOCUSPARAMS;

typedef struct RILSENDRTTDATAPARAMS
    {
    DWORD cbSize;
    DWORD dwID;
    DWORD dwExecutor;
    WCHAR wszRTTText[ 127 ];
    } 	RILSENDRTTDATAPARAMS;

typedef struct RILSENDRTTDATAPARAMS *LPRILSENDRTTDATAPARAMS;

typedef 
enum RILALPHAIDENTIFIERPARAMMASK
    {
        RIL_PARAM_AI_TYPE	= 0x1,
        RIL_PARAM_AI_REASON	= 0x2,
        RIL_PARAM_AI_ALL	= 0x3
    } 	RILALPHAIDENTIFIERPARAMMASK;

typedef 
enum RILALPHAIDENTIFIDERTYPE
    {
        RIL_ALPHAIDENTIFIERTYPE_UNKNOWN	= 0x1,
        RIL_ALPHAIDENTIFIERTYPE_PRESENT	= 0x2,
        RIL_ALPHAIDENTIFIERTYPE_NOTPRESENT	= 0x3,
        RIL_ALPHAIDENTIFIERTYPE_MAX	= RIL_ALPHAIDENTIFIERTYPE_NOTPRESENT
    } 	RILALPHAIDENTIFIDERTYPE;

typedef struct RILALPHAIDENTIFIER
    {
    DWORD cbSize;
    DWORD dwParams;
    RILALPHAIDENTIFIDERTYPE dwType;
    WCHAR wszReason[ 256 ];
    } 	RILALPHAIDENTIFIER;

typedef struct RILALPHAIDENTIFIER *LPRILALPHAIDENTIFIER;

typedef 
enum RILCALLMODIFICATIONINFOPARAMMASK
    {
        RIL_PARAM_CMI_EXECUTOR	= 0x1,
        RIL_PARAM_CMI_ID	= 0x2,
        RIL_PARAM_CMI_MODIFICATIONTYPE	= 0x4,
        RIL_PARAM_CMI_OLDCALLTYPE	= 0x8,
        RIL_PARAM_CMI_NEWCALLTYPE	= 0x10,
        RIL_PARAM_CMI_ADDRESS	= 0x20,
        RIL_PARAM_CMI_ALPHAIDENTIFIER	= 0x40,
        RIL_PARAM_CMI_ALL	= 0x7f
    } 	RILCALLMODIFICATIONINFOPARAMMASK;

typedef 
enum RILCALLMODIFICATIONINFOMODIFICATIONTYPE
    {
        RIL_CALLMODIFICATIONTYPE_UNKNOWN	= 0x1,
        RIL_CALLMODIFICATIONTYPE_BLOCKED	= 0x2,
        RIL_CALLMODIFICATIONTYPE_MODIFIED	= 0x3,
        RIL_CALLMODIFICATIONTYPE_MAX	= RIL_CALLMODIFICATIONTYPE_MODIFIED
    } 	RILCALLMODIFICATIONINFOMODIFICATIONTYPE;

typedef struct RILCALLMODIFICATIONINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLMODIFICATIONINFOMODIFICATIONTYPE dwModificationType;
    RILCALLTYPE dwOldCallType;
    RILCALLTYPE dwNewCallType;
    RILADDRESS raAddress;
    RILALPHAIDENTIFIER aiIdentifier;
    } 	RILCALLMODIFICATIONINFO;

typedef struct RILCALLMODIFICATIONINFO *LPRILCALLMODIFICATIONINFO;

typedef 
enum RILCALLINFOPARAMMASK
    {
        RIL_PARAM_CI_EXECUTOR	= 0x1,
        RIL_PARAM_CI_ID	= 0x2,
        RIL_PARAM_CI_DIRECTION	= 0x4,
        RIL_PARAM_CI_STATUS	= 0x8,
        RIL_PARAM_CI_TYPE	= 0x10,
        RIL_PARAM_CI_MULTIPARTY	= 0x20,
        RIL_PARAM_CI_ADDRESS	= 0x40,
        RIL_PARAM_CI_SUBADDRESS	= 0x80,
        RIL_PARAM_CI_DESCRIPTION	= 0x100,
        RIL_PARAM_CI_NUM_PRES_IND	= 0x200,
        RIL_PARAM_CI_NAME_PRES_IND	= 0x400,
        RIL_PARAM_CI_FLAGS	= 0x800,
        RIL_PARAM_CI_DISCONNECTINITIATOR	= 0x1000,
        RIL_PARAM_CI_DISCONNECTREASON	= 0x2000,
        RIL_PARAM_CI_DISCONNECTDETAILS	= 0x4000,
        RIL_PARAM_CI_OFFERANSWER	= 0x8000,
        RIL_PARAM_CI_HANDOVERSTATE	= 0x10000,
        RIL_PARAM_CI_CALLMODIFICATIONCAUSE	= 0x20000,
        RIL_PARAM_CI_RTTMODETYPE	= 0x40000,
        RIL_PARAM_CI_RTTCAPINFO	= 0x80000,
        RIL_PARAM_CI_RTTACTION	= 0x100000,
        RIL_PARAM_CI_ALL	= 0x1fffff
    } 	RILCALLINFOPARAMMASK;

typedef 
enum RILCALLINFODIRECTION
    {
        RIL_CALLDIR_INCOMING	= 0x1,
        RIL_CALLDIR_OUTGOING	= 0x2,
        RIL_CALLDIR_MAX	= RIL_CALLDIR_OUTGOING
    } 	RILCALLINFODIRECTION;

typedef 
enum RILCALLINFOSTATUS
    {
        RIL_CPISTAT_UNKNOWN	= 0x1,
        RIL_CPISTAT_NEW_OUTGOING	= 0x2,
        RIL_CPISTAT_NEW_INCOMING	= 0x3,
        RIL_CPISTAT_CONNECTED	= 0x4,
        RIL_CPISTAT_DISCONNECTED	= 0x5,
        RIL_CPISTAT_ONHOLD	= 0x6,
        RIL_CPISTAT_MEDIA	= 0x7,
        RIL_CPISTAT_HANDOVER	= 0x8,
        RIL_CPISTAT_MAX	= RIL_CPISTAT_HANDOVER
    } 	RILCALLINFOSTATUS;

typedef 
enum RILCALLINFOMULTIPARTY
    {
        RIL_CALL_SINGLEPARTY	= 0x1,
        RIL_CALL_MULTIPARTY	= 0x2,
        RIL_CALL_MAX	= RIL_CALL_MULTIPARTY
    } 	RILCALLINFOMULTIPARTY;

typedef 
enum RILREMOTEPARTYINFOVALUE
    {
        RIL_REMOTEPARTYINFO_VALID	= 0x1,
        RIL_REMOTEPARTYINFO_WITHHELD	= 0x2,
        RIL_REMOTEPARTYINFO_UNAVAILABLE	= 0x3,
        RIL_REMOTEPARTYINFO_MAX	= RIL_REMOTEPARTYINFO_UNAVAILABLE
    } 	RILREMOTEPARTYINFOVALUE;

typedef 
enum RILCALLINFOFLAGS
    {
        RILCALLINFO_FLAG_NONE	= 0,
        RILCALLINFO_FLAG_ALIENCALL	= 0x1,
        RILCALLINFO_FLAG_EMERGENCYCALL	= 0x2
    } 	RILCALLINFOFLAGS;

typedef 
enum RILCALLINFODISCONNECTINITIATOR
    {
        RIL_DISCINIT_UNKNOWN	= 0x1,
        RIL_DISCINIT_LOCAL	= 0x2,
        RIL_DISCINIT_REMOTE	= 0x3,
        RIL_DISCINIT_MAX	= RIL_DISCINIT_REMOTE
    } 	RILCALLINFODISCONNECTINITIATOR;

typedef 
enum RILCALLINFODISCONNECTREASON
    {
        RIL_DISCREASON_NULL	= 0x1,
        RIL_DISCREASON_BUSY	= 0x2,
        RIL_DISCREASON_NETWORKERROR	= 0x3,
        RIL_DISCREASON_RADIOFADE	= 0x4,
        RIL_DISCREASON_CONGESTION	= 0x5,
        RIL_DISCREASON_EMERGENCYONLY	= 0x6,
        RIL_DISCREASON_NOSERVICE	= 0x7,
        RIL_DISCREASON_OTHEREXECUTORBUSY	= 0x8,
        RIL_DISCREASON_EMERGENCYFAILOVER	= 0x9,
        RIL_DISCREASON_HANDOVER_MERGE	= 0xa,
        RIL_DISCREASON_MAX	= RIL_DISCREASON_HANDOVER_MERGE
    } 	RILCALLINFODISCONNECTREASON;

typedef struct RILCALLINFO_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLINFODIRECTION dwDirection;
    RILCALLINFOSTATUS dwStatus;
    RILCALLTYPE dwType;
    RILCALLINFOMULTIPARTY dwMultiparty;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    BOOL fAlienCall;
    RILCALLINFODISCONNECTINITIATOR dwDisconnectInitiator;
    RILCALLINFODISCONNECTREASON dwDisconnectReason;
    RILCALLDISCONNECTDETAILS stDisconnectDetails;
    } 	RILCALLINFO_V1;

typedef struct RILCALLINFO_V1 *LPRILCALLINFO_V1;

typedef struct RILCALLINFO_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLINFODIRECTION dwDirection;
    RILCALLINFOSTATUS dwStatus;
    RILCALLTYPE dwType;
    RILCALLINFOMULTIPARTY dwMultiparty;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    DWORD dwFlags;
    RILCALLINFODISCONNECTINITIATOR dwDisconnectInitiator;
    RILCALLINFODISCONNECTREASON dwDisconnectReason;
    RILCALLDISCONNECTDETAILS stDisconnectDetails;
    } 	RILCALLINFO_V2;

typedef struct RILCALLINFO_V2 *LPRILCALLINFO_V2;

typedef struct RILCALLINFO_V3
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLINFODIRECTION dwDirection;
    RILCALLINFOSTATUS dwStatus;
    RILCALLTYPE dwType;
    RILCALLINFOMULTIPARTY dwMultiparty;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    DWORD dwFlags;
    RILCALLINFODISCONNECTINITIATOR dwDisconnectInitiator;
    RILCALLINFODISCONNECTREASON dwDisconnectReason;
    RILCALLDISCONNECTDETAILS stDisconnectDetails;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    RILCALLHANDOVERSTATE rchsHandoverState;
    } 	RILCALLINFO_V3;

typedef struct RILCALLINFO_V3 *LPRILCALLINFO_V3;

typedef struct RILCALLINFO_V4
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLINFODIRECTION dwDirection;
    RILCALLINFOSTATUS dwStatus;
    RILCALLTYPE dwType;
    RILCALLINFOMULTIPARTY dwMultiparty;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    DWORD dwFlags;
    RILCALLINFODISCONNECTINITIATOR dwDisconnectInitiator;
    RILCALLINFODISCONNECTREASON dwDisconnectReason;
    RILCALLDISCONNECTDETAILS stDisconnectDetails;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    RILCALLHANDOVERSTATE rchsHandoverState;
    RILCALLMODIFICATIONCAUSECODE dwCallModificationCauseCode;
    } 	RILCALLINFO_V4;

typedef struct RILCALLINFO_V4 *LPRILCALLINFO_V4;

typedef struct RILCALLINFO_V5
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILCALLINFODIRECTION dwDirection;
    RILCALLINFOSTATUS dwStatus;
    RILCALLTYPE dwType;
    RILCALLINFOMULTIPARTY dwMultiparty;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    DWORD dwFlags;
    RILCALLINFODISCONNECTINITIATOR dwDisconnectInitiator;
    RILCALLINFODISCONNECTREASON dwDisconnectReason;
    RILCALLDISCONNECTDETAILS stDisconnectDetails;
    RILCALLMEDIAOFFERANSWERSET rcmOfferAnswer;
    RILCALLHANDOVERSTATE rchsHandoverState;
    RILCALLMODIFICATIONCAUSECODE dwCallModificationCauseCode;
    RILCALLRTT stRTTInfo;
    } 	RILCALLINFO_V5;

typedef struct RILCALLINFO_V5 *LPRILCALLINFO_V5;

typedef struct RILCALLINFO_V5 RILCALLINFO;

typedef struct RILCALLINFO_V5 *LPRILCALLINFO;

typedef 
enum RILCALLWAITINGINFOPARAMMASK
    {
        RIL_PARAM_CWI_EXECUTOR	= 0x1,
        RIL_PARAM_CWI_CALLTYPE	= 0x2,
        RIL_PARAM_CWI_CALLERINFO	= 0x4,
        RIL_PARAM_CWI_ALL	= 0x7
    } 	RILCALLWAITINGINFOPARAMMASK;

typedef struct RILREMOTEPARTYINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    WCHAR wszDescription[ 256 ];
    RILREMOTEPARTYINFOVALUE dwNumberPresentationIndicator;
    RILREMOTEPARTYINFOVALUE dwNamePresentationIndicator;
    DWORD dwID;
    } 	RILREMOTEPARTYINFO;

typedef struct RILREMOTEPARTYINFO *LPRILREMOTEPARTYINFO;

typedef struct RILCALLWAITINGINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILCALLTYPE dwCallType;
    RILREMOTEPARTYINFO rrpiCallerInfo;
    } 	RILCALLWAITINGINFO;

typedef struct RILCALLWAITINGINFO *LPRILCALLWAITINGINFO;

typedef 
enum RILREMOTEPARTYINFOVALUEPARAM
    {
        RIL_PARAM_RPI_EXECUTOR	= 0x1,
        RIL_PARAM_RPI_ADDRESS	= 0x2,
        RIL_PARAM_RPI_SUBADDRESS	= 0x4,
        RIL_PARAM_RPI_DESCRIPTION	= 0x8,
        RIL_PARAM_RPI_NUM_PRES_IND	= 0x10,
        RIL_PARAM_RPI_NAME_PRES_IND	= 0x20,
        RIL_PARAM_RPI_ID	= 0x40,
        RIL_PARAM_RPI_ALL	= 0x7f
    } 	RILREMOTEPARTYINFOVALUEPARAM;

typedef enum RILREMOTEPARTYINFOVALUEPARAM RILREMOTEPARTYINFOPARAM;

typedef 
enum RILDISPLAYINFOPARAMMASK
    {
        RIL_PARAM_DISPLAY_EXECUTOR	= 0x1,
        RIL_PARAM_DISPLAY_TYPE	= 0x2,
        RIL_PARAM_DISPLAY_TAG	= 0x4,
        RIL_PARAM_DISPLAY_MESSAGESIZE	= 0x8,
        RIL_PARAM_DISPLAY_MESSAGE	= 0x10,
        RIL_PARAM_DISPLAY_ALL	= 0x1f
    } 	RILDISPLAYINFOPARAMMASK;

typedef 
enum RILDISPLAYINFOTYPE
    {
        RIL_EXTENDED_DISPLAY_TYPE_NORMAL	= 0x1
    } 	RILDISPLAYINFOTYPE;

typedef 
enum RILDISPLAYINFOTAG
    {
        RIL_EXTENDED_DISPLAY_TAG_BLANK	= 0x1,
        RIL_EXTENDED_DISPLAY_TAG_SKIP	= 0x2,
        RIL_EXTENDED_DISPLAY_TAG_CONTINUATION	= 0x3,
        RIL_EXTENDED_DISPLAY_TAG_CALLED_ADDRESS	= 0x4,
        RIL_EXTENDED_DISPLAY_TAG_CAUSE	= 0x5,
        RIL_EXTENDED_DISPLAY_TAG_PROGRESS_INDICATOR	= 0x6,
        RIL_EXTENDED_DISPLAY_TAG_NOTIFICATION_INDICATOR	= 0x7,
        RIL_EXTENDED_DISPLAY_TAG_PROMPT	= 0x8,
        RIL_EXTENDED_DISPLAY_TAG_ACCUMULATED_DIGITS	= 0x9,
        RIL_EXTENDED_DISPLAY_TAG_STATUS	= 0xa,
        RIL_EXTENDED_DISPLAY_TAG_INBAND	= 0xb,
        RIL_EXTENDED_DISPLAY_TAG_CALLING_ADDRESS	= 0xc,
        RIL_EXTENDED_DISPLAY_TAG_REASON	= 0xd,
        RIL_EXTENDED_DISPLAY_TAG_CALLING_PARTY_NAME	= 0xe,
        RIL_EXTENDED_DISPLAY_TAG_CALLED_PARTY_NAME	= 0xf,
        RIL_EXTENDED_DISPLAY_TAG_ORIGINAL_CALLED_NAME	= 0x10,
        RIL_EXTENDED_DISPLAY_TAG_REDIRECTING_NAME	= 0x11,
        RIL_EXTENDED_DISPLAY_TAG_CONNECTED_NAME	= 0x12,
        RIL_EXTENDED_DISPLAY_TAG_ORIGINATING_RESTRICT	= 0x13,
        RIL_EXTENDED_DISPLAY_TAG_DATE_TIME_OF_DAY	= 0x14,
        RIL_EXTENDED_DISPLAY_TAG_CALL_APPEARANCE_ID	= 0x15,
        RIL_EXTENDED_DISPLAY_TAG_FEATURE_ADDRESS	= 0x16,
        RIL_EXTENDED_DISPLAY_TAG_REDIRECTION_NAME	= 0x17,
        RIL_EXTENDED_DISPLAY_TAG_REDIRECTION_NUMBER	= 0x18,
        RIL_EXTENDED_DISPLAY_TAG_REDIRECTING_NUMBER	= 0x19,
        RIL_EXTENDED_DISPLAY_TAG_ORIGINAL_CALLED_NUMBER	= 0x1a,
        RIL_EXTENDED_DISPLAY_TAG_CONNECTED_NUMBER	= 0x1b,
        RIL_EXTENDED_DISPLAY_TAG_TEXT	= 0x1c,
        RIL_EXTENDED_DISPLAY_TAG_MAX	= RIL_EXTENDED_DISPLAY_TAG_TEXT
    } 	RILDISPLAYINFOTAG;

typedef struct RILDISPLAYINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILDISPLAYINFOTYPE dwType;
    RILDISPLAYINFOTAG dwTag;
    DWORD dwMessageSize;
    BYTE pbMessage[ 1 ];
    } 	RILDISPLAYINFO;

typedef struct RILDISPLAYINFO *LPRILDISPLAYINFO;

typedef struct RILCALLLIST_V1
    {
    DWORD dwNumberOfCalls;
    RILCALLINFO_V1 rciCallInfo[ 1 ];
    } 	RILCALLLIST_V1;

typedef struct RILCALLLIST_V1 *LPRILCALLLIST_V1;

typedef struct RILCALLLIST_V2
    {
    DWORD dwNumberOfCalls;
    RILCALLINFO_V2 rciCallInfo[ 1 ];
    } 	RILCALLLIST_V2;

typedef struct RILCALLLIST_V2 *LPRILCALLLIST_V2;

typedef struct RILCALLLIST_V3
    {
    DWORD dwNumberOfCalls;
    RILCALLINFO_V3 rciCallInfo[ 1 ];
    } 	RILCALLLIST_V3;

typedef struct RILCALLLIST_V3 *LPRILCALLLIST_V3;

typedef struct RILCALLLIST_V3 RILCALLLIST;

typedef struct RILCALLLIST_V3 *LPRILCALLLIST;

typedef 
enum RILEXECUTORFOCUSSTATEPARAMMASK
    {
        RIL_PARAM_EXECUTORFOCUSSTATE_NUMEXECUTORS	= 0x1,
        RIL_PARAM_EXECUTORFOCUSSTATE_STATE	= 0x2,
        RIL_PARAM_EXECUTORFOCUSSTATE_ALL	= 0x3
    } 	RILEXECUTORFOCUSSTATEPARAMMASK;

typedef struct RILEXECUTORFOCUSSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwNumberOfExecutors;
    BOOL fFocusStates[ 2 ];
    } 	RILEXECUTORFOCUSSTATE;

typedef struct RILEXECUTORFOCUSSTATE *LPRILEXECUTORFOCUSSTATE;

typedef 
enum RILUNSOLICITEDSSINFOPARAMMASK
    {
        RIL_PARAM_UNSSS_EXECUTOR	= 0x1,
        RIL_PARAM_UNSSS_ID	= 0x2,
        RIL_PARAM_UNSSS_NOTIFICATIONCODE	= 0x4,
        RIL_PARAM_UNSSS_ADDRESS	= 0x8,
        RIL_PARAM_UNSSS_SUBADDR	= 0x10,
        RIL_PARAM_UNSSS_CUGINDEX	= 0x20,
        RIL_PARAM_UNSSS_HISTLENGTH	= 0x40,
        RIL_PARAM_UNSSS_HISTINFO	= 0x80,
        RIL_PARAM_UNSSS_ALL	= 0xff
    } 	RILUNSOLICITEDSSINFOPARAMMASK;

typedef 
enum RILUNSOLICITEDSSINFONOTIFICATIONCODE
    {
        RIL_UNSSSCODE_FORWARDEDCALL	= 0x1,
        RIL_UNSSSCODE_CUGCALL	= 0x2,
        RIL_UNSSSCODE_CALLPUTONHOLD	= 0x3,
        RIL_UNSSSCODE_CALLRETRIEVED	= 0x4,
        RIL_UNSSSCODE_ENTEREDMULTIPARTY	= 0x5,
        RIL_UNSSSCODE_HELDCALLRELEASED	= 0x6,
        RIL_UNSSSCODE_FORWARDCHECKSS	= 0x7,
        RIL_UNSSSCODE_ALERTINGEXPLICITCALLXFER	= 0x8,
        RIL_UNSSSCODE_CONNECTEDEXPLICITCALLXFER	= 0x9,
        RIL_UNSSSCODE_DEFLECTEDCALL	= 0xa,
        RIL_UNSSSCODE_ADDITIONALINCOMINGCF	= 0xb,
        RIL_UNSSSCODE_UNCONDITIONALCFACTIVE	= 0xc,
        RIL_UNSSSCODE_SOMECONDITIONALCFACTIVE	= 0xd,
        RIL_UNSSSCODE_CALLWASFORWARDED	= 0xe,
        RIL_UNSSSCODE_CALLISWAITING	= 0xf,
        RIL_UNSSSCODE_OUTGOINGCALLSBARRED	= 0x10,
        RIL_UNSSSCODE_INCOMINGCALLSBARRED	= 0x11,
        RIL_UNSSSCODE_CLIRSUPPRESSREJECT	= 0x12,
        RIL_UNSSSCODE_MAX	= RIL_UNSSSCODE_CLIRSUPPRESSREJECT
    } 	RILUNSOLICITEDSSINFONOTIFICATIONCODE;

typedef struct RILUNSOLICITEDSSINFO_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILUNSOLICITEDSSINFONOTIFICATIONCODE dwNotificationCode;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    DWORD dwCUGIndex;
    } 	RILUNSOLICITEDSSINFO_V1;

typedef struct RILUNSOLICITEDSSINFO_V1 *LPRILUNSOLICITEDSSINFO_V1;

typedef struct RILUNSOLICITEDSSINFO_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    RILUNSOLICITEDSSINFONOTIFICATIONCODE dwNotificationCode;
    RILADDRESS raAddress;
    RILSUBADDRESS rsaSubAddress;
    DWORD dwCUGIndex;
    DWORD dwHistorynfoLength;
    WCHAR wszHistoryInfo[ 1 ];
    } 	RILUNSOLICITEDSSINFO_V2;

typedef struct RILUNSOLICITEDSSINFO_V2 *LPRILUNSOLICITEDSSINFO_V2;

typedef struct RILUNSOLICITEDSSINFO_V2 RILUNSOLICITEDSSINFO;

typedef struct RILUNSOLICITEDSSINFO_V2 *LPRILUNSOLICITEDSSINFO;

typedef 
enum RILSUPSERVICEDATAPARAMMASK
    {
        RIL_PARAM_SSDI_EXECUTOR	= 0x1,
        RIL_PARAM_SSDI_STATUS	= 0x2,
        RIL_PARAM_SSDI_SS_ERROR	= 0x4,
        RIL_PARAM_SSDI_CC_ERROR	= 0x8,
        RIL_PARAM_SSDI_VENDOR_ERROR	= 0x10,
        RIL_PARAM_SSDI_DATASIZE	= 0x20,
        RIL_PARAM_SSDI_DATA	= 0x40,
        RIL_PARAM_SSDI_ALL	= 0x7f
    } 	RILSUPSERVICEDATAPARAMMASK;

typedef 
enum RILSUPSERVICEDATASTATUS
    {
        RIL_SUPSVCDATASTATUS_NOINFOREQUIRED	= 0x1,
        RIL_SUPSVCDATASTATUS_FURTHERINFOREQUIRED	= 0x2,
        RIL_SUPSVCDATASTATUS_TIMEOUT	= 0x6,
        RIL_SUPSVCDATASTATUS_ERROR	= 0x7,
        RIL_SUPSVCDATASTATUS_MAX	= RIL_SUPSVCDATASTATUS_ERROR
    } 	RILSUPSERVICEDATASTATUS;

typedef struct RILSUPSERVICEDATA
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSUPSERVICEDATASTATUS dwStatus;
    DWORD dwNetworkSSErrorCause;
    DWORD dwNetworkCCErrorCause;
    DWORD dwVendorErrorCause;
    DWORD dwDataSize;
    WCHAR wszData[ 1 ];
    } 	RILSUPSERVICEDATA;

typedef struct RILSUPSERVICEDATA *LPRILSUPSERVICEDATA;

typedef struct RILLINECONTROLINFO
    {
    DWORD cbSize;
    DWORD dwExecutor;
    BOOL fPolarityIncluded;
    BOOL fToggleMode;
    BOOL fReversePolarity;
    DWORD dwPowerDenialTime;
    } 	RILLINECONTROLINFO;

typedef struct RILLINECONTROLINFO *LPRILLINECONTROLINFO;

typedef 
enum RILSUPSVCINFOPARAMMASK
    {
        RIL_PARAM_SSI_EXECUTOR	= 0x1,
        RIL_PARAM_SSI_FROM_NETWORK	= 0x2,
        RIL_PARAM_SSI_FAILURE_REASON	= 0x4,
        RIL_PARAM_SSI_SUPSVC_ACTION	= 0x8,
        RIL_PARAM_SSI_SUPSVC_TYPE	= 0x10,
        RIL_PARAM_SSI_CALL_FORWARDING_REASON	= 0x20,
        RIL_PARAM_SSI_CALL_BARRING_TYPE	= 0x40,
        RIL_PARAM_SSI_INFOCLASSES	= 0x80,
        RIL_PARAM_SSI_ALPHA_IDENTIFIER	= 0x100,
        RIL_PARAM_SSI_CALL_BARRING_PASSWORD	= 0x200,
        RIL_PARAM_SSI_NEW_CALL_BARRING_PASSWORD	= 0x400,
        RIL_PARAM_SSI_CALL_FORWARDING_SETTINGS	= 0x800,
        RIL_PARAM_SSI_CALLER_ID_SETTINGS	= 0x1000,
        RIL_PARAM_SSI_DIALED_ID_SETTINGS	= 0x2000,
        RIL_PARAM_SSI_HIDE_ID_SETTINGS	= 0x4000,
        RIL_PARAM_SSI_CONNECTED_ID_SETTINGS	= 0x8000,
        RIL_PARAM_SSI_SUPSERVICE_DATA	= 0x10000,
        RIL_PARAM_SSI_ALL	= 0x1ffff
    } 	RILSUPSVCINFOPARAMMASK;

typedef 
enum RILSUPSVCTYPE
    {
        RIL_SUPSVCTYPE_CALLWAITING	= 0x1,
        RIL_SUPSVCTYPE_CLIP	= 0x2,
        RIL_SUPSVCTYPE_CLIR	= 0x3,
        RIL_SUPSVCTYPE_COLP	= 0x4,
        RIL_SUPSVCTYPE_COLR	= 0x5,
        RIL_SUPSVCTYPE_CNAP	= 0x6,
        RIL_SUPSVCTYPE_MAX	= RIL_SUPSVCTYPE_CNAP
    } 	RILSUPSVCTYPE;

typedef 
enum RILSUPSVCACTION
    {
        RIL_SUPSVCACTION_ACTIVATE	= 0x1,
        RIL_SUPSVCACTION_DEACTIVATE	= 0x2,
        RIL_SUPSVCACTION_REGISTER	= 0x3,
        RIL_SUPSVCACTION_ERASE	= 0x4,
        RIL_SUPSVCACTION_INTERROGATE	= 0x5,
        RIL_SUPSVCACTION_REGISTER_PW	= 0x6,
        RIL_SUPSVCACTION_USSD	= 0x7,
        RIL_SUPSVCACTION_MAX	= RIL_SUPSVCACTION_USSD
    } 	RILSUPSVCACTION;

typedef struct RILSUPSVCINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD fFromNetwork;
    DWORD dwFailureReason;
    RILSUPSVCACTION dwSupSvcAction;
    RILCALLFORWARDINGSETTINGSREASON dwCallForwardingReason;
    RILCALLBARRINGSTATUSPARAMSTYPE dwCallBarringType;
    RILSUPSVCTYPE dwSupSvcType;
    DWORD dwInfoClasses;
    RILALPHAIDENTIFIER aiIdentifier;
    char szCallBarringPassword[ 256 ];
    char szNewCallBarringPassword[ 256 ];
    RILCALLFORWARDINGSETTINGS callForwardSettings;
    RILCALLERIDSETTINGS callerIdSettings;
    RILDIALEDIDSETTINGS dialedIdSettings;
    RILHIDEIDSETTINGS hideIdSettings;
    RILHIDECONNECTEDIDSETTINGS hideConnectedIdSettings;
    RILSUPSERVICEDATA supServiceData;
    } 	RILSUPSVCINFO;

typedef struct RILSUPSVCINFO *LPRILSUPSVCINFO;

typedef 
enum RILADDITIONALCALLERINFOPARAMMASK
    {
        RIL_PARAM_ADDTLCI_EXECUTOR	= 0x1,
        RIL_PARAM_ADDTLCI_CALLID	= 0x2,
        RIL_PARAM_ADDTLCI_CALLERINFOLENGTH	= 0x4,
        RIL_PARAM_ADDTLCI_CALLERINFO	= 0x8,
        RIL_PARAM_ADDTLCI_ALL	= 0xf
    } 	RILADDITIONALCALLERINFOPARAMMASK;

typedef struct RILADDITIONALCALLERINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwCallId;
    DWORD dwCallerInfoLength;
    WCHAR wszCallerInfo[ 1 ];
    } 	RILADDITIONALCALLERINFO;

typedef struct RILADDITIONALCALLERINFO *LPRILADDITIONALCALLERINFO;

typedef struct RILSENDDTMFPARAMS
    {
    DWORD dwExecutor;
    char szDTMF[ 256 ];
    DWORD dwDigitOnTimeMs;
    DWORD dwDigitOffTimeMs;
    } 	RILSENDDTMFPARAMS;

typedef struct RILSENDDTMFPARAMS *LPRILSENDDTMFPARAMS;

typedef struct RILSTARTDTMFPARAMS
    {
    DWORD dwExecutor;
    char ch;
    } 	RILSTARTDTMFPARAMS;

typedef struct RILSTARTDTMFPARAMS *LPRILSTARTDTMFPARAMS;

typedef 
enum RILTONESIGNALINFOPARAMMASK
    {
        RIL_PARAM_TONESIGNAL_GPPTONE	= 0x1,
        RIL_PARAM_TONESIGNAL_GPP2TONE	= 0x2,
        RIL_PARAM_TONESIGNAL_GPP2ISDNALERTING	= 0x4,
        RIL_PARAM_TONESIGNAL_EXECUTOR	= 0x8,
        RIL_PARAM_TONESIGNAL_All	= 0xf
    } 	RILTONESIGNALINFOPARAMMASK;

typedef 
enum RIL3GPPTONE
    {
        RIL_3GPPTONE_TONEOFF	= 0x1,
        RIL_3GPPTONE_RINGBACK	= 0x2,
        RIL_3GPPTONE_BUSY	= 0x3,
        RIL_3GPPTONE_CONGESTION	= 0x4,
        RIL_3GPPTONE_AUTHENTICATIONFAILURE	= 0x5,
        RIL_3GPPTONE_NUMBERUNOBTAINABLE	= 0x6,
        RIL_3GPPTONE_CALLDROPPED	= 0x7,
        RIL_3GPPTONE_MAX	= RIL_3GPPTONE_CALLDROPPED
    } 	RIL3GPPTONE;

typedef 
enum RIL3GPP2TONE
    {
        RIL_3GPP2TONE_TONEOFF	= 0x1,
        RIL_3GPP2TONE_DIAL	= 0x2,
        RIL_3GPP2TONE_RINGBACK	= 0x3,
        RIL_3GPP2TONE_INTERCEPT	= 0x4,
        RIL_3GPP2TONE_ABRVINTERCEPT	= 0x5,
        RIL_3GPP2TONE_REORDER	= 0x6,
        RIL_3GPP2TONE_ABRVREORDER	= 0x7,
        RIL_3GPP2TONE_BUSY	= 0x8,
        RIL_3GPP2TONE_CONFIRM	= 0x9,
        RIL_3GPP2TONE_ANSWER	= 0xa,
        RIL_3GPP2TONE_CALLWAITING	= 0xb,
        RIL_3GPP2TONE_PIP	= 0xc,
        RIL_3GPP2TONE_MAX	= RIL_3GPP2TONE_PIP
    } 	RIL3GPP2TONE;

typedef 
enum RIL3GPP2ISDNALERTING
    {
        RIL_3GPP2ISDNALERTING_ALERTINGOFF	= 0x1,
        RIL_3GPP2ISDNALERTING_NORMAL	= 0x2,
        RIL_3GPP2ISDNALERTING_INTERGROUP	= 0x3,
        RIL_3GPP2ISDNALERTING_SPECIAL	= 0x4,
        RIL_3GPP2ISDNALERTING_PINGRING	= 0x5,
        RIL_3GPP2ISDNALERTING_MAX	= RIL_3GPP2ISDNALERTING_PINGRING
    } 	RIL3GPP2ISDNALERTING;

typedef struct RILTONESIGNALINFO_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    RIL3GPPTONE dwGPPTone;
    RIL3GPP2TONE dwGPP2Tone;
    RIL3GPP2ISDNALERTING dwGPP2IsdnAlerting;
    } 	RILTONESIGNALINFO_V1;

typedef struct RILTONESIGNALINFO_V1 *LPRILTONESIGNALINFO_V1;

typedef struct RILTONESIGNALINFO_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RIL3GPPTONE dwGPPTone;
    RIL3GPP2TONE dwGPP2Tone;
    RIL3GPP2ISDNALERTING dwGPP2IsdnAlerting;
    } 	RILTONESIGNALINFO_V2;

typedef struct RILTONESIGNALINFO_V2 *LPRILTONESIGNALINFO_V2;

typedef struct RILTONESIGNALINFO_V2 RILTONESIGNALINFO;

typedef struct RILTONESIGNALINFO_V2 *LPRILTONESIGNALINFO;

typedef 
enum RILSMSSUPPORTCAPS
    {
        RIL_CAPS_SMSSUPPORT_PERSISTLINK	= 0x1,
        RIL_CAPS_SMSSUPPORT_16BITREFERENCENUMBER	= 0x2,
        RIL_CAPS_SMSSUPPORT_ALL	= 0x3
    } 	RILSMSSUPPORTCAPS;

typedef 
enum RILMSGSERVICEINFOPARAMMASK
    {
        RIL_PARAM_MSI_MSGSUPPORT	= 0x1,
        RIL_PARAM_MSI_STOREUSED	= 0x2,
        RIL_PARAM_MSI_STORETOTAL	= 0x4,
        RIL_PARAM_MSI_ALL	= 0x7
    } 	RILMSGSERVICEINFOPARAMMASK;

typedef 
enum RILMSGSERVICEINFOMSGSUPPORT
    {
        RIL_MSI_SMS_INCOMING	= 0x1,
        RIL_MSI_SMS_OUTGOING	= 0x2,
        RIL_MSI_SMS_BROADCAST	= 0x4
    } 	RILMSGSERVICEINFOMSGSUPPORT;

typedef struct RILMSGSERVICEINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwMsgSupport;
    DWORD dwStoreUsed;
    DWORD dwStoreTotal;
    } 	RILMSGSERVICEINFO;

typedef struct RILMSGSERVICEINFO *LPRILMSGSERVICEINFO;

typedef struct RILREADMSGPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwIndex;
    } 	RILREADMSGPARAMS;

typedef struct RILREADMSGPARAMS *LPRILREADMSGPARAMS;

typedef 
enum RILMESSAGEINFOPARAMMASK
    {
        RIL_PARAM_MI_INDEX	= 0x1,
        RIL_PARAM_MI_STATUS	= 0x2,
        RIL_PARAM_MI_MESSAGE	= 0x4,
        RIL_PARAM_MI_ALL	= 0x7
    } 	RILMESSAGEINFOPARAMMASK;

typedef 
enum RILMESSAGESTATUS
    {
        RIL_MSGSTATUS_UNKNOWN	= 0x1,
        RIL_MSGSTATUS_RECUNREAD	= 0x2,
        RIL_MSGSTATUS_RECREAD	= 0x3,
        RIL_MSGSTATUS_STOUNSENT	= 0x4,
        RIL_MSGSTATUS_STOSENT	= 0x5,
        RIL_MSGSTATUS_MAX	= RIL_MSGSTATUS_STOSENT
    } 	RILMESSAGESTATUS;

typedef struct RILMESSAGEINFO
    {
    DWORD cbSize;
    HUICCAPP hUiccApp;
    DWORD dwParams;
    DWORD dwIndex;
    RILMESSAGESTATUS dwStatus;
    RILMESSAGE rmMessage;
    } 	RILMESSAGEINFO;

typedef struct RILMESSAGEINFO *LPRILMESSAGEINFO;

typedef struct RILWRITEMSGPARAMS
    {
    HUICCAPP hUiccApp;
    RILMESSAGE rmMessage;
    RILMESSAGESTATUS dwStatus;
    } 	RILWRITEMSGPARAMS;

typedef struct RILWRITEMSGPARAMS *LPRILWRITEMSGPARAMS;

typedef struct RILDELETEMSGPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwIndex;
    } 	RILDELETEMSGPARAMS;

typedef struct RILDELETEMSGPARAMS *LPRILDELETEMSGPARAMS;

typedef 
enum RILCBMSGCONFIGPARAMMASK
    {
        RIL_PARAM_CBMC_GWLSIZE	= 0x1,
        RIL_PARAM_CBMC_GWLINFO	= 0x2,
        RIL_PARAM_CBMC_CDMASIZE	= 0x4,
        RIL_PARAM_CBMC_CDMAINFO	= 0x8,
        RIL_PARAM_CBMC_ALL	= 0xf
    } 	RILCBMSGCONFIGPARAMMASK;

typedef struct RILCBGWLCONFIGINFO
    {
    BOOL fAccept;
    RILRANGE rgrrBroadcastMsgID;
    } 	RILCBGWLCONFIGINFO;

typedef struct RILCBGWLCONFIGINFO *LPRILCBGWLCONFIGINFO;

typedef struct RILCBCDMACONFIGINFO
    {
    BOOL fAccept;
    DWORD dwBroadcastMsgLang;
    DWORD dwBroadcastServiceCategory;
    } 	RILCBCDMACONFIGINFO;

typedef struct RILCBCDMACONFIGINFO *LPRILCBCDMACONFIGINFO;

typedef struct RILCBMSGCONFIG
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwGWLConfigInfoSize;
    RILCBGWLCONFIGINFO GWLConfigInfo[ 50 ];
    DWORD dwCDMAConfigInfoSize;
    RILCBCDMACONFIGINFO CDMAConfigInfo[ 50 ];
    } 	RILCBMSGCONFIG;

typedef struct RILCBMSGCONFIG *LPRILCBMSGCONFIG;

typedef struct RILSETCELLBROADCASTMSGCONFIGPARAMS
    {
    HUICCAPP hUiccApp;
    RILCBMSGCONFIG rmCBConfig;
    } 	RILSETCELLBROADCASTMSGCONFIGPARAMS;

typedef struct RILSETCELLBROADCASTMSGCONFIGPARAMS *LPRILSETCELLBROADCASTMSGCONFIGPARAMS;

typedef struct RILGETMSGINUICCSTATUSPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwIndex;
    } 	RILGETMSGINUICCSTATUSPARAMS;

typedef struct RILGETMSGINUICCSTATUSPARAMS *LPRILGETMSGINUICCSTATUSPARAMS;

typedef struct RILSETMSGINUICCSTATUSPARAMS
    {
    HUICCAPP hUiccApp;
    DWORD dwIndex;
    RILMESSAGESTATUS dwStatus;
    } 	RILSETMSGINUICCSTATUSPARAMS;

typedef struct RILSETMSGINUICCSTATUSPARAMS *LPRILSETMSGINUICCSTATUSPARAMS;

typedef 
enum RILSENDMSGOPTIONS
    {
        RIL_SENDOPT_NONE	= 0,
        RIL_SENDOPT_PERSISTLINK	= 0x1,
        RIL_SENDOPT_IMS	= 0x2
    } 	RILSENDMSGOPTIONS;

typedef struct RILSENDMSGPARAMS
    {
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    RILMESSAGE rmMessage;
    DWORD dwOptions;
    } 	RILSENDMSGPARAMS;

typedef struct RILSENDMSGPARAMS *LPRILSENDMSGPARAMS;

typedef 
enum RILSENDMSGRESPONSEPARAMMASK
    {
        RIL_PARAM_MSGRES_RETURN	= 0x1,
        RIL_PARAM_MSGRES_CDMACAUSECODE	= 0x2,
        RIL_PARAM_MSGRES_CDMAERRORCLASS	= 0x4,
        RIL_PARAM_MSGRES_GWLTRANSPORTCODE	= 0x8,
        RIL_PARAM_MSGRES_GWLRELAYCODE	= 0x10,
        RIL_PARAM_MSGRES_MSGID	= 0x20,
        RIL_PARAM_MSGRES_ALL	= 0x3f
    } 	RILSENDMSGRESPONSEPARAMMASK;

typedef struct RILSENDMSGRESPONSE
    {
    DWORD cbSize;
    DWORD dwParams;
    HRESULT hrReturn;
    DWORD dwCDMACauseCode;
    DWORD dwCDMAErrorClass;
    DWORD dwGWLTransportCode;
    DWORD dwGWLRelayCode;
    DWORD dwMsgID;
    } 	RILSENDMSGRESPONSE;

typedef struct RILSENDMSGRESPONSE *LPRILSENDMSGRESPONSE;

typedef struct RILSETSMSCPARAMS
    {
    HUICCAPP hUiccApp;
    RILADDRESS raSvcCtrAddress;
    } 	RILSETSMSCPARAMS;

typedef struct RILSETSMSCPARAMS *LPRILSETSMSCPARAMS;

typedef struct RILGETIMSPARAMS
    {
    DWORD cbSize;
    DWORD dwExecutor;
    } 	RILGETIMSPARAMS;

typedef struct RILGETIMSPARAMS *LPRILGETIMSPARAMS;

typedef 
enum RILMSGACKSTATUS
    {
        RIL_MSGACKSTATUS_STORED	= 0x1,
        RIL_MSGACKSTATUS_FAIL_MEM_FULL	= 0x2,
        RIL_MSGACKSTATUS_ERROR	= 0x3,
        RIL_MSGACKSTATUS_MAX	= RIL_MSGACKSTATUS_ERROR
    } 	RILMSGACKSTATUS;

typedef 
enum RILSMSACKOPT
    {
        RIL_SMSACKOPT_NONE	= 0,
        RIL_SMSACKOPT_IMS	= 0x1
    } 	RILSMSACKOPT;

typedef struct RILSENDMSGACKPARAMS_V1
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAckID;
    RILMSGACKSTATUS dwMsgStatus;
    } 	RILSENDMSGACKPARAMS_V1;

typedef struct RILSENDMSGACKPARAMS_V2
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAckID;
    RILMSGACKSTATUS dwMsgStatus;
    RILSMSFORMAT dwSmsFormat;
    DWORD dwOptions;
    } 	RILSENDMSGACKPARAMS_V2;

typedef struct RILSENDMSGACKPARAMS_V2 RILSENDMSGACKPARAMS;

typedef struct RILSENDMSGACKPARAMS_V2 *LPRILSENDMSGACKPARAMS;

typedef struct RILMESSAGEIN_V1
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAckID;
    RILMESSAGE rm;
    } 	RILMESSAGEIN_V1;

typedef 
enum RILSMSMSGINFLAGS
    {
        RIL_SMSMSGIN_NONE	= 0,
        RIL_SMSMSGIN_IMS	= 0x1,
        RIL_SMSMSGIN_ALL	= 0x1
    } 	RILSMSMSGINFLAGS;

typedef struct RILMESSAGEIN_V2
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAckID;
    RILMESSAGE rm;
    DWORD dwFlags;
    } 	RILMESSAGEIN_V2;

typedef struct RILMESSAGEIN_V2 RILMESSAGEIN;

typedef struct RILMESSAGEIN_V2 *LPRILMESSAGEIN;

typedef struct RILMESSAGEINUICC
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwIndex;
    } 	RILMESSAGEINUICC;

typedef struct RILMESSAGEINUICC *LPRILMESSAGEINUICC;

typedef 
enum RILIMSSSTATUSPARAMMASK
    {
        RIL_PARAM_IMSSTATUS_EXECUTOR	= 0x1,
        RIL_PARAM_IMSSTATUS_HUICCAPP	= 0x2,
        RIL_PARAM_IMSSTATUS_AVAILABLESERVICES	= 0x4,
        RIL_PARAM_IMSSTATUS_SMSSUPPORTEDFORMAT	= 0x8,
        RIL_PARAM_IMSSTATUS_SERVINGDOMAIN	= 0x10,
        RIL_PARAM_IMSSTATUS_SYSTEMTYPE	= 0x20,
        RIL_PARAM_IMSSTATUS_ALL	= 0x3f
    } 	RILIMSSSTATUSPARAMMASK;

typedef struct RILIMSSTATUS_V1
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAvailableServices;
    RILSMSFORMAT dwSMSSupportedFormat;
    } 	RILIMSSTATUS_V1;

typedef struct RILIMSSTATUS_V1 *LPRILIMSSTATUS_V1;

typedef struct RILIMSSTATUS_V2
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAvailableServices;
    RILSMSFORMAT dwSMSSupportedFormat;
    WCHAR wszServingDomain[ 256 ];
    } 	RILIMSSTATUS_V2;

typedef struct RILIMSSTATUS_V2 *LPRILIMSSTATUS_V2;

typedef struct RILIMSSTATUS_V3
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    DWORD dwAvailableServices;
    RILSMSFORMAT dwSMSSupportedFormat;
    WCHAR wszServingDomain[ 256 ];
    RILIMSSYSTEMTYPE dwIMSSystemType;
    } 	RILIMSSTATUS_V3;

typedef struct RILIMSSTATUS_V3 *LPRILIMSSTATUS_V3;

typedef struct RILIMSSTATUS_V3 RILIMSSTATUS;

typedef struct RILIMSSTATUS_V3 *LPRILIMSSTATUS;

typedef struct RILMESSAGESTORAGEFULL
    {
    DWORD cbSize;
    DWORD dwExecutor;
    HUICCAPP hUiccApp;
    } 	RILMESSAGESTORAGEFULL;

typedef struct RILMESSAGESTORAGEFULL *LPRILMESSAGESTORAGEFULL;

typedef struct RILSMSMODIFICATIONINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwModificationType;
    RILADDRESS raAddress;
    RILALPHAIDENTIFIER aiIdentifier;
    } 	RILSMSMODIFICATIONINFO;

typedef struct RILSMSMODIFICATIONINFO *LPRILSMSMODIFICATIONINFO;

typedef 
enum RILIMSFAILUREMESSAGETYPE
    {
        RIL_IMSFAILUREMESSAGETYPE_REGISTER	= 0,
        RIL_IMSFAILUREMESSAGETYPE_SUBSCRIBE	= 0x1,
        RIL_IMSFAILUREMESSAGETYPE_INCALL	= 0x2,
        RIL_IMSFAILUREMESSAGETYPE_MAX	= RIL_IMSFAILUREMESSAGETYPE_INCALL
    } 	RILIMSFAILUREMESSAGETYPE;

typedef 
enum RILIMSSUBSCRIBETYPE
    {
        RIL_IMSSUBSCRIBETYPE_REG	= 0,
        RIL_IMSSUBSCRIBETYPE_MWI	= 0x1,
        RIL_IMSSUBSCRIBETYPE_CONFERENCE	= 0x2,
        RIL_IMSSUBSCRIBETYPE_MAX	= RIL_IMSSUBSCRIBETYPE_CONFERENCE
    } 	RILIMSSUBSCRIBETYPE;

typedef 
enum RILIMSFAILUREPARAMMASK
    {
        RIL_PARAM_IMSFAILURE_EXECUTOR	= 0x1,
        RIL_PARAM_IMSFAILURE_MESSAGETYPE	= 0x2,
        RIL_PARAM_IMSFAILURE_MESSAGESUBTYPE	= 0x4,
        RIL_PARAM_IMSFAILURE_ERRORCODE	= 0x8,
        RIL_PARAM_IMSFAILURE_ERRORSTRING	= 0x10,
        RIL_PARAM_IMSFAILURE_ALL	= 0x1f
    } 	RILIMSFAILUREPARAMMASK;

typedef struct RILIMSFAILURE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILIMSFAILUREMESSAGETYPE dwMessageType;
    DWORD dwMessageSubType;
    DWORD dwErrorCode;
    WCHAR wszErrorString[ 256 ];
    } 	RILIMSFAILURE;

typedef struct RILIMSFAILURE *LPRILIMSFAILURE;

typedef 
enum RILCONFPARTICIPANTSTATUSPARAMMASK
    {
        RIL_PARAM_CPS_EXECUTOR	= 0x1,
        RIL_PARAM_CPS_ID	= 0x2,
        RIL_PARAM_CPS_CALLTRANSFER	= 0x4,
        RIL_PARAM_CPS_ADDRESS	= 0x8,
        RIL_PARAM_CPS_PARTICIPANTOP	= 0x10,
        RIL_PARAM_CPS_SIPSTATUS	= 0x20,
        RIL_PARAM_CPS_ALL	= 0x3f
    } 	RILCONFPARTICIPANTSTATUSPARAMMASK;

typedef 
enum RILPARTICIPANTOPERATION
    {
        RIL_PARTICIPANT_ADD	= 0,
        RIL_PARTICIPANT_REMOVE	= 0x1,
        RIL_PARTICIPANT_MAX	= RIL_PARTICIPANT_REMOVE
    } 	RILPARTICIPANTOPERATION;

typedef struct RILCONFPARTICIPANTSTATUS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwID;
    BOOL bCallTransfer;
    RILADDRESS raAddress;
    RILPARTICIPANTOPERATION dwParticipantOp;
    DWORD dwSIPStatus;
    } 	RILCONFPARTICIPANTSTATUS;

typedef struct RILCONFPARTICIPANTSTATUS *LPRILCONFPARTICIPANTSTATUS;

typedef 
enum RILSMSREADYSTATE
    {
        RIL_SMSREADY_SERVICEREADY_3GPP	= 0x1,
        RIL_SMSREADY_SERVICEREADY_3GPP2	= 0x2,
        RIL_SMSREADY_UICCREADY	= 0x4,
        RIL_SMSREADYSTATE_ALL	= 0x7
    } 	RILSMSREADYSTATE;

typedef struct RILSMSREADYSTATUS
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILSMSREADYSTATE dwReadyState;
    } 	RILSMSREADYSTATUS;

typedef struct RILSMSREADYSTATUS *LPRILSMSREADYSTATUS;

typedef 
enum RILMSGMWITYPE
    {
        RIL_MSGMWITYPE_NONE	= 0,
        RIL_MSGMWITYPE_VOICEMAIL	= 0x1,
        RIL_MSGMWITYPE_VIDEOMAIL	= 0x2,
        RIL_MSGMWITYPE_FAX	= 0x3,
        RIL_MSGMWITYPE_PAGER	= 0x4,
        RIL_MSGMWITYPE_MULTIMEDIA	= 0x5,
        RIL_MSGMWITYPE_TEXT	= 0x6,
        RIL_MSGMWITYPE_MAX	= RIL_MSGMWITYPE_TEXT
    } 	RILMSGMWITYPE;

typedef struct RILMSGMWISUMMARY
    {
    RILMSGMWITYPE dwMwiType;
    DWORD dwNumberOfNewMessages;
    DWORD dwNumberOfOldMessages;
    DWORD dwNumberOfNewUrgentMessages;
    DWORD dwNumberOfOldUrgentMessages;
    } 	RILMSGMWISUMMARY;

typedef struct RILMSGMWISUMMARY *LPRILMSGMWISUMMARY;

typedef 
enum RILMSGMWISUMMARYLISTPARAMMASK
    {
        RIL_PARAM_MWISUMMARY_EXECUTOR	= 0x1,
        RIL_PARAM_MWISUMMARY_REFNUM	= 0x2,
        RIL_PARAM_MWISUMMARY_ACCTADDR	= 0x4,
        RIL_PARAM_MWISUMMARY_TOTALNUMDETAILITEMS	= 0x8,
        RIL_PARAM_MWISUMMARY_NUMSUMMARYITEMS	= 0x10,
        RIL_PARAM_MWISUMMARY_SUMMARYITEMS	= 0x20,
        RIL_PARAM_MWISUMMARY_ALL	= 0x3f
    } 	RILMSGMWISUMMARYLISTPARAMMASK;

typedef struct RILMSGMWISUMMARYLIST
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwReferenceNumber;
    RILADDRESS stAccountAddress;
    DWORD dwTotalNumberOfDetailItems;
    DWORD dwNumberOfSummaryItems;
    RILMSGMWISUMMARY stMwiSummary[ 1 ];
    } 	RILMSGMWISUMMARYLIST;

typedef struct RILMSGMWISUMMARYLIST *LPRILMSGMWISUMMARYLIST;

typedef 
enum RILMSGMWIPRIORITY
    {
        RIL_MSGMWIPRIORITY_UNKNOWN	= 0,
        RIL_MSGMWIPRIORITY_LOW	= 0x1,
        RIL_MSGMWIPRIORITY_NORMAL	= 0x2,
        RIL_MSGMWIPRIORITY_URGENT	= 0x3,
        RIL_MSGMWIPRIORITY_EMERGENCY	= 0x4,
        RIL_MSGMWIPRIORITY_MAX	= RIL_MSGMWIPRIORITY_EMERGENCY
    } 	RILMSGMWIPRIORITY;

typedef struct RILMSGMWIDETAIL
    {
    RILMSGMWITYPE dwMwiType;
    RILMSGMWIPRIORITY dwMwiPriority;
    RILADDRESS raToAddress;
    RILADDRESS raFromAddress;
    RILSYSTEMTIME stDateSent;
    WCHAR wszSubject[ 256 ];
    WCHAR wszMessageId[ 256 ];
    } 	RILMSGMWIDETAIL;

typedef struct RILMSGMWIDETAIL *LPRILMSGMWIDETAIL;

typedef 
enum RILMSGMWIDETAILLISTPARAMMASK
    {
        RIL_PARAM_MWIDETAIL_EXECUTOR	= 0x1,
        RIL_PARAM_MWIDETAIL_REFNUM	= 0x2,
        RIL_PARAM_MWIDETAIL_NUMDETAILITEMS	= 0x4,
        RIL_PARAM_MWIDETAIL_DETAILITEMS	= 0x8,
        RIL_PARAM_MWIDETAIL_ALL	= 0xf
    } 	RILMSGMWIDETAILLISTPARAMMASK;

typedef struct RILMSGMWIDETAILLIST
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    DWORD dwReferenceNumber;
    DWORD dwNumberOfDetailItems;
    RILMSGMWIDETAIL stMwiDetail[ 1 ];
    } 	RILMSGMWIDETAILLIST;

typedef struct RILMSGMWIDETAILLIST *LPRILMSGMWIDETAILLIST;

typedef struct RILRTTDATA
    {
    DWORD cbSize;
    DWORD dwID;
    DWORD dwExecutor;
    WCHAR wszRTTData[ 127 ];
    } 	RILRTTDATA;

typedef struct RILRTTDATA *LPRILRTTDATA;

typedef 
enum RILGSMMNMRPARAMMASK
    {
        RIL_PARAM_GSMNMR_MCC	= 0x1,
        RIL_PARAM_GSMNMR_MNC	= 0x2,
        RIL_PARAM_GSMNMR_LAC	= 0x4,
        RIL_PARAM_GSMNMR_CELLID	= 0x8,
        RIL_PARAM_GSMNMR_ARFCN	= 0x10,
        RIL_PARAM_GSMNMR_BSID	= 0x20,
        RIL_PARAM_GSMNMR_RXLEVEL	= 0x40,
        RIL_PARAM_GSMNMR_ALL	= 0x7f
    } 	RILGSMMNMRPARAMMASK;

typedef struct RILGSMNMR
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwARFCN;
    DWORD dwBaseStationID;
    DWORD dwRxLevel;
    } 	RILGSMNMR;

typedef struct RILGSMNMR *LPRILGSMNMR;

typedef 
enum RILUMTSMRLPARAMMASK
    {
        RIL_PARAM_UMTSMRL_MCC	= 0x1,
        RIL_PARAM_UMTSMRL_MNC	= 0x2,
        RIL_PARAM_UMTSMRL_LAC	= 0x4,
        RIL_PARAM_UMTSMRL_CELLID	= 0x8,
        RIL_PARAM_UMTSMRL_UARFCN	= 0x10,
        RIL_PARAM_UMTSMRL_PRIMARY_SC	= 0x20,
        RIL_PARAM_UMTSMRL_RSCP	= 0x40,
        RIL_PARAM_UMTSMRL_ECNO	= 0x80,
        RIL_PARAM_UMTSMRL_PATHLOSS	= 0x100,
        RIL_PARAM_UMTSMRL_ALL	= 0x1ff
    } 	RILUMTSMRLPARAMMASK;

typedef struct RILUMTSMRL
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwUARFCN;
    DWORD dwPrimaryScramblingCode;
    LONG dwRSCP;
    LONG dwECNO;
    DWORD dwPathLoss;
    } 	RILUMTSMRL;

typedef struct RILUMTSMRL *LPRILUMTSMRL;

typedef 
enum RILTDSCDMAMRLPARAMMASK
    {
        RIL_PARAM_TDSCDMAMRL_MCC	= 0x1,
        RIL_PARAM_TDSCDMAMRL_MNC	= 0x2,
        RIL_PARAM_TDSCDMAMRL_LAC	= 0x4,
        RIL_PARAM_TDSCDMAMRL_CELLID	= 0x8,
        RIL_PARAM_TDSCDMAMRL_UARFCN	= 0x10,
        RIL_PARAM_TDSCDMAMRL_CELLPARAM	= 0x20,
        RIL_PARAM_TDSCDMAMRL_RSCP	= 0x40,
        RIL_PARAM_TDSCDMAMRL_PATHLOSS	= 0x80,
        RIL_PARAM_TDSCDMAMRL_ALL	= 0xff
    } 	RILTDSCDMAMRLPARAMMASK;

typedef struct RILTDSCDMAMRL
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwUARFCN;
    DWORD dwCellParameterID;
    DWORD dwRSCP;
    DWORD dwPathLoss;
    } 	RILTDSCDMAMRL;

typedef struct RILTDSCDMAMRL *LPRILTDSCDMAMRL;

typedef 
enum RILEUTRAMRLPARAMMASK
    {
        RIL_PARAM_EUTRAMRL_MCC	= 0x1,
        RIL_PARAM_EUTRAMRL_MNC	= 0x2,
        RIL_PARAM_EUTRAMRL_CELLID	= 0x4,
        RIL_PARAM_EUTRAMRL_EARFCN	= 0x8,
        RIL_PARAM_EUTRAMRL_PHYSCELLID	= 0x10,
        RIL_PARAM_EUTRAMRL_TAC	= 0x20,
        RIL_PARAM_EUTRAMRL_RSRP	= 0x40,
        RIL_PARAM_EUTRAMRL_RSRQ	= 0x80,
        RIL_PARAM_EUTRAMRL_ALL	= 0xff
    } 	RILEUTRAMRLPARAMMASK;

typedef struct RILEUTRAMRL
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwCellID;
    DWORD dwEARFCN;
    DWORD dwPhysCellID;
    DWORD dwTAC;
    LONG dwRSRP;
    LONG dwRSRQ;
    } 	RILEUTRAMRL;

typedef struct RILEUTRAMRL *LPRILEUTRAMRL;

typedef 
enum RILC2KMRLPARAMMASK
    {
        RIL_PARAM_C2KMRL_SERVING	= 0x1,
        RIL_PARAM_C2KMRL_NID	= 0x2,
        RIL_PARAM_C2KMRL_SID	= 0x4,
        RIL_PARAM_C2KMRL_BSID	= 0x8,
        RIL_PARAM_C2KMRL_BASELAT	= 0x10,
        RIL_PARAM_C2KMRL_BASELONG	= 0x20,
        RIL_PARAM_C2KMRL_REFPN	= 0x40,
        RIL_PARAM_C2KMRL_GPSSECONDS	= 0x80,
        RIL_PARAM_C2KMRL_PILOTSTRENGTH	= 0x100,
        RIL_PARAM_C2KRML_ALL	= 0x1ff
    } 	RILC2KMRLPARAMMASK;

typedef struct RILC2KMRL
    {
    DWORD dwParams;
    BOOL fServing;
    DWORD dwNID;
    DWORD dwSID;
    DWORD dwBaseStationID;
    DWORD dwBaseLat;
    DWORD dwBaseLong;
    DWORD dwRefPN;
    DWORD dwGPSSeconds;
    DWORD dwPilotStrength;
    } 	RILC2KMRL;

typedef struct RILC2KMRL *LPRILC2KMRL;

typedef 
enum RILPOSITIONINFOGSMPARAMMASK
    {
        RIL_PARAM_POSITION_GSM_MCC	= 0x1,
        RIL_PARAM_POSITION_GSM_MNC	= 0x2,
        RIL_PARAM_POSITION_GSM_LAC	= 0x4,
        RIL_PARAM_POSITION_GSM_CELLID	= 0x8,
        RIL_PARAM_POSITION_GSM_TA	= 0x10,
        RIL_PARAM_POSITION_GSM_ARFCN	= 0x20,
        RIL_PARAM_POSITION_GSM_BSID	= 0x40,
        RIL_PARAM_POSITION_GSM_RXLEVEL	= 0x80,
        RIL_PARAM_POSITION_GSM_ALL	= 0xff
    } 	RILPOSITIONINFOGSMPARAMMASK;

typedef struct RILPOSITIONINFOGSM
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwTimingAdvance;
    DWORD dwARFCN;
    DWORD dwBaseStationID;
    DWORD dwRxLevel;
    } 	RILPOSITIONINFOGSM;

typedef struct RILPOSITIONINFOGSM *LPRILPOSITIONINFOGSM;

typedef 
enum RILPOSITIONINFOUMTSPARAMMASK
    {
        RIL_PARAM_POSITION_UMTS_MCC	= 0x1,
        RIL_PARAM_POSITION_UMTS_MNC	= 0x2,
        RIL_PARAM_POSITION_UMTS_LAC	= 0x4,
        RIL_PARAM_POSITION_UMTS_CELLID	= 0x8,
        RIL_PARAM_POSITION_UMTS_FREQINFO_UL	= 0x10,
        RIL_PARAM_POSITION_UMTS_FREQINFO_DL	= 0x20,
        RIL_PARAM_POSITION_UMTS_FREQINFO_NT	= 0x40,
        RIL_PARAM_POSITION_UMTS_UARFCN	= 0x80,
        RIL_PARAM_POSITION_UMTS_PRIMARY_SC	= 0x100,
        RIL_PARAM_POSITION_UMTS_RSCP	= 0x200,
        RIL_PARAM_POSITION_UMTS_ECNO	= 0x400,
        RIL_PARAM_POSITION_UMTS_PATHLOSS	= 0x800,
        RIL_PARAM_POSITION_UMTS_ALL	= 0xfff
    } 	RILPOSITIONINFOUMTSPARAMMASK;

typedef struct RILPOSITIONINFOUMTS
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwFrequencyInfoUL;
    DWORD dwFrequencyInfoDL;
    DWORD dwFrequencyInfoNT;
    DWORD dwUARFCN;
    DWORD dwPrimaryScramblingCode;
    LONG dwRSCP;
    LONG dwECNO;
    DWORD dwPathLoss;
    } 	RILPOSITIONINFOUMTS;

typedef struct RILPOSITIONINFOUMTS *LPRILPOSITIONINFOUMTS;

typedef 
enum RILPOSITIONINFOTDSCDMAPARAMMASK
    {
        RIL_PARAM_POSITION_TDSCDMA_MCC	= 0x1,
        RIL_PARAM_POSITION_TDSCDMA_MNC	= 0x2,
        RIL_PARAM_POSITION_TDSCDMA_LAC	= 0x4,
        RIL_PARAM_POSITION_TDSCDMA_CELLID	= 0x8,
        RIL_PARAM_POSITION_TDSCDMA_UARFCN	= 0x10,
        RIL_PARAM_POSITION_TDSCDMA_CELLPARAM	= 0x20,
        RIL_PARAM_POSITION_TDSCDMA_TA	= 0x40,
        RIL_PARAM_POSITION_TDSCDMA_RSCP	= 0x80,
        RIL_PARAM_POSITION_TDSCDMA_PATHLOSS	= 0x100,
        RIL_PARAM_POSITION_TDSCDMA_ALL	= 0x1ff
    } 	RILPOSITIONINFOTDSCDMAPARAMMASK;

typedef struct RILPOSITIONINFOTDSCDMA
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwLocationAreaCode;
    DWORD dwCellID;
    DWORD dwUARFCN;
    DWORD dwCellParameterID;
    DWORD dwTimingAdvance;
    DWORD dwRSCP;
    DWORD dwPathLoss;
    } 	RILPOSITIONINFOTDSCDMA;

typedef struct RILPOSITIONINFOTDSCDMA *LPRILPOSITIONINFOTDSCDMA;

typedef 
enum RILPOSITIONINFOLTEPARAMMASK
    {
        RIL_PARAM_POSITION_LTE_MCC	= 0x1,
        RIL_PARAM_POSITION_LTE_MNC	= 0x2,
        RIL_PARAM_POSITION_LTE_CELLID	= 0x4,
        RIL_PARAM_POSITION_LTE_EARFCN	= 0x8,
        RIL_PARAM_POSITION_LTE_PHYSCELLID	= 0x10,
        RIL_PARAM_POSITION_LTE_TAC	= 0x20,
        RIL_PARAM_POSITION_LTE_RSRP	= 0x40,
        RIL_PARAM_POSITION_LTE_RSRQ	= 0x80,
        RIL_PARAM_POSITION_LTE_TA	= 0x100,
        RIL_PARAM_POSITION_LTE_ALL	= 0x1ff
    } 	RILPOSITIONINFOLTEPARAMMASK;

typedef struct RILPOSITIONINFOLTE
    {
    DWORD dwParams;
    DWORD dwMobileCountryCode;
    DWORD dwMobileNetworkCode;
    DWORD dwCellID;
    DWORD dwEARFCN;
    DWORD dwPhysCellID;
    DWORD dwTAC;
    LONG dwRSRP;
    LONG dwRSRQ;
    DWORD dwTimingAdvance;
    } 	RILPOSITIONINFOLTE;

typedef struct RILPOSITIONINFOLTE *LPRILPOSITIONINFOLTE;

typedef struct RILPOSITIONINFO_V1
    {
    DWORD cbSize;
    DWORD dwSystemType;
    RILPOSITIONINFOGSM stGSMServingCellInfo;
    RILPOSITIONINFOUMTS stUMTSServingCellInfo;
    RILPOSITIONINFOLTE stLTEServingCellInfo;
    DWORD dwCntGSMNMR;
    RILGSMNMR rgNMR[ 15 ];
    DWORD dwCntUMTSMRL;
    RILUMTSMRL ruMRL[ 15 ];
    DWORD dwCntEUTRAMRL;
    RILEUTRAMRL reMRL[ 15 ];
    DWORD dwCntC2KMRL;
    RILC2KMRL rc2kMRL[ 12 ];
    } 	RILPOSITIONINFO_V1;

typedef struct RILPOSITIONINFO_V1 *LPRILPOSITIONINFO_V1;

typedef struct RILPOSITIONINFO_V2
    {
    DWORD cbSize;
    DWORD dwSystemType;
    RILPOSITIONINFOGSM stGSMServingCellInfo;
    RILPOSITIONINFOUMTS stUMTSServingCellInfo;
    RILPOSITIONINFOTDSCDMA stTDSCDMAServingCellInfo;
    RILPOSITIONINFOLTE stLTEServingCellInfo;
    DWORD dwCntGSMNMR;
    RILGSMNMR rgNMR[ 15 ];
    DWORD dwCntUMTSMRL;
    RILUMTSMRL ruMRL[ 15 ];
    DWORD dwCntTDSCDMAMRL;
    RILTDSCDMAMRL rtMRL[ 15 ];
    DWORD dwCntEUTRAMRL;
    RILEUTRAMRL reMRL[ 15 ];
    DWORD dwCntC2KMRL;
    RILC2KMRL rc2kMRL[ 12 ];
    } 	RILPOSITIONINFO_V2;

typedef struct RILPOSITIONINFO_V2 *LPRILPOSITIONINFO_V2;

typedef struct RILPOSITIONINFO_V2 RILPOSITIONINFO;

typedef struct RILPOSITIONINFO_V2 *LPRILPOSITIONINFO;

typedef 
enum RILGEOLOCATIONREQUESTACCURACY
    {
        RIL_LOCACCURACY_HIGH	= 1,
        RIL_LOCACCURACY_DEFAULT	= 2
    } 	RILGEOLOCATIONREQUESTACCURACY;

typedef 
enum RILGEOLOCATIONTYPEMASK
    {
        RIL_GEOLOCATION_NONE	= 0,
        RIL_GEOLOCATION_CIVIC	= 0x1,
        RIL_GEOLOCATION_LATLONG	= 0x2,
        RIL_GEOLOCATION_ALL	= 0x3
    } 	RILGEOLOCATIONTYPEMASK;

typedef 
enum RILOSGEOLOCATIONINFOPARAMMASK
    {
        RIL_PARAM_OSGEOLOCATIONINFO_NONE	= 0,
        RIL_PARAM_OSGEOLOCATIONINFO_SIZE	= 0x1,
        RIL_PARAM_OSGEOLOCATIONINFO_LATLONG	= 0x2,
        RIL_PARAM_OSGEOLOCATIONINFO_ALTITUDE	= 0x4,
        RIL_PARAM_OSGEOLOCATIONINFO_ACCURACY	= 0x8,
        RIL_PARAM_OSGEOLOCATIONINFO_MASK	= 0x10,
        RIL_PARAM_OSGEOLOCATIONINFO_ADDRESS1	= 0x20,
        RIL_PARAM_OSGEOLOCATIONINFO_ADDRESS2	= 0x40,
        RIL_PARAM_OSGEOLOCATIONINFO_CITY	= 0x80,
        RIL_PARAM_OSGEOLOCATIONINFO_STATE	= 0x100,
        RIL_PARAM_OSGEOLOCATIONINFO_COUNTRY	= 0x200,
        RIL_PARAM_OSGEOLOCATIONINFO_POSTALCODE	= 0x400,
        RIL_PARAM_OSGEOLOCATIONINFO_COUNTRYCODE	= 0x800,
        RIL_PARAM_OSGEOLOCATIONINFO_REGIONCODE	= 0x1000,
        RIL_PARAM_OSGEOLOCATIONINFO_FORMATTEDADDRESS	= 0x2000,
        RIL_PARAM_OSGEOLOCATIONINFO_TIMESTAMP	= 0x4000,
        RIL_PARAM_OSGEOLOCATIONINFO_ALL	= 0x7fff
    } 	RILOSGEOLOCATIONINFOPARAMMASK;

typedef struct RILOSGEOLOCATIONINFO
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwLatitude;
    DWORD dwLongitude;
    DWORD dwAltitude;
    DWORD dwAccuracy;
    RILGEOLOCATIONTYPEMASK dwLocationInformationMask;
    RILSYSTEMTIME stTimeStamp;
    WCHAR wszAddressLine1[ 76 ];
    WCHAR wszAddressLine2[ 76 ];
    WCHAR wszCity[ 76 ];
    WCHAR wszState[ 76 ];
    WCHAR wszCountry[ 76 ];
    WCHAR wszPostalCode[ 15 ];
    WCHAR wszFormattedAddress[ 256 ];
    WCHAR wszCountryCode[ 11 ];
    WCHAR wszRegionCode[ 11 ];
    } 	RILOSGEOLOCATIONINFO;

typedef struct RILOSGEOLOCATIONINFO *LPRILOSGEOLOCATIONINFO;

typedef struct RILSETGEOLOCATIONDATAPARAMS
    {
    DWORD cbSize;
    DWORD dwExecutor;
    RILOSGEOLOCATIONINFO locationInfo;
    } 	RILSETGEOLOCATIONDATAPARAMS;

typedef struct RILSETGEOLOCATIONDATAPARAMS *LPRILSETGEOLOCATIONDATAPARAMS;

typedef struct RILGEOLOCATIONREQUESTINFO
    {
    DWORD cbSize;
    DWORD dwLatitude;
    DWORD dwLongitude;
    DWORD dwAltitude;
    } 	RILGEOLOCATIONREQUESTINFO;

typedef struct RILGEOLOCATIONREQUESTINFO *LPRILGEOLOCATIONREQUESTINFO;

typedef 
enum RILREQUESTGEOLOCATIONDATAPARAMMASK
    {
        RIL_PARAM_REQUESTGEOLOCATIONDATA_NONE	= 0,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_SIZE	= 0x1,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_EXECUTOR	= 0x2,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_MASK	= 0x4,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_REQUESTACCCURACY	= 0x8,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_REQUESTINFORMATION	= 0x10,
        RIL_PARAM_REQUESTGEOLOCATIONDATA_ALL	= 0x1f
    } 	RILREQUESTGEOLOCATIONDATAPARAMMASK;

typedef struct RILREQUESTGEOLOCATIONDATA
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwExecutor;
    RILGEOLOCATIONTYPEMASK dwLocationInformationMask;
    RILGEOLOCATIONREQUESTACCURACY dwLocationRequestAccuracy;
    RILGEOLOCATIONREQUESTINFO rrRequestInformation;
    } 	RILREQUESTGEOLOCATIONDATA;

typedef struct RILREQUESTGEOLOCATIONDATA *LPRILREQUESTGEOLOCATIONDATA;

typedef 
enum RILRADIOSTATEGROUPID
    {
        RIL_RADIOSTATE_GROUP_UNSPECIFIED	= 0xffffffff
    } 	RILRADIOSTATEGROUPID;

typedef 
enum RILRADIOSTATEGROUPFLAGS
    {
        RIL_RADIOSTATE_GROUPFLAG_NONE	= 0,
        RIL_RADIOSTATE_GROUPFLAG_HASSUBGROUPS	= 0x8000
    } 	RILRADIOSTATEGROUPFLAGS;

typedef struct RILRADIOSTATEGROUP
    {
    DWORD dwGroupId;
    DWORD dwGroupType;
    DWORD dwGroupFlags;
    WCHAR wszGroupText[ 32 ];
    } 	RILRADIOSTATEGROUP;

typedef struct RILRADIOSTATEGROUP *LPRILRADIOSTATEGROUP;

typedef struct RILRADIOSTATEGROUPS
    {
    DWORD dwCntGroups;
    RILRADIOSTATEGROUP rilGroups[ 1 ];
    } 	RILRADIOSTATEGROUPS;

typedef struct RILRADIOSTATEGROUPS *LPRILRADIOSTATEGROUPS;

typedef 
enum RILRADIOSTATEITEMID
    {
        RIL_RADIOSTATE_ITEM_UNSPECIFIED	= 0xffffffff
    } 	RILRADIOSTATEITEMID;

typedef struct RILGETRADIOSTATEDETAILSPARAMS
    {
    DWORD dwGroupId;
    DWORD dwItemId;
    } 	RILGETRADIOSTATEDETAILSPARAMS;

typedef struct RILGETRADIOSTATEDETAILSPARAMS *LPRILGETRADIOSTATEDETAILSPARAMS;

typedef 
enum RILRADIOSTATEITEMFLAG
    {
        RIL_RADIOSTATE_ITEMFLAG_USE_INTVAL	= 0x1,
        RIL_RADIOSTATE_ITEMFLAG_USE_UINTVAL	= 0x2,
        RIL_RADIOSTATE_ITEMFLAG_USE_WSZVAL	= 0x3,
        RIL_RADIOSTATE_ITEMFLAG_USE_INTARRAY	= 0x4,
        RIL_RADIOSTATE_ITEMFLAG_USE_UINTARRAY	= 0x5,
        RIL_RADIOSTATE_ITEMFLAG_USE_BYTEARRAY	= 0x6,
        RIL_RADIOSTATE_ITEMFLAG_USE_MAX	= RIL_RADIOSTATE_ITEMFLAG_USE_BYTEARRAY
    } 	RILRADIOSTATEITEMFLAG;

typedef 
enum RILRADIOSTATEITEMATTRIBUTES
    {
        RIL_RADIOSTATE_ITEM_ATTRIBUTE_NO_ATTRIBUTE	= 0,
        RIL_RADIOSTATE_ITEM_ATTRIBUTE_ISDIRTY	= 0x1,
        RIL_RADIOSTATE_ITEM_ATTRIBUTE_ISWRITABLE	= 0x2,
        RIL_RADIOSTATE_ITEM_ATTRIBUTE_HAVEOPTIONS	= 0x4,
        RIL_RADIOSTATE_ITEM_ATTRIBUTE_ALL	= 0x7
    } 	RILRADIOSTATEITEMATTRIBUTES;

typedef struct RILRADIOSTATEITEM
    {
    DWORD dwItemId;
    RILRADIOSTATEITEMFLAG dwItemFlag;
    DWORD dwItemAttributes;
    /* [switch_is] */ /* [switch_type] */ union RILITEMVALUEUNION
        {
        /* [case()] */ int intVal;
        /* [case()] */ unsigned int uintVal;
        /* [case()] */ WCHAR wszVal[ 32 ];
        /* [case()] */ int intArray[ 16 ];
        /* [case()] */ unsigned int uintArray[ 16 ];
        /* [case()] */ BYTE byteArray[ 64 ];
        } 	itemValueUnion;
    WCHAR wszFriendlyName[ 32 ];
    WCHAR wszItemValueOptions[ 256 ];
    } 	RILRADIOSTATEITEM;

typedef struct RILRADIOSTATEITEM *LPRILRADIOSTATEITEM;

typedef struct RILRADIOSTATEITEMS
    {
    DWORD dwGroupId;
    DWORD dwCntItems;
    RILRADIOSTATEITEM rilItems[ 1 ];
    } 	RILRADIOSTATEITEMS;

typedef struct RILRADIOSTATEITEMS *LPRILRADIOSTATEITEMS;

typedef struct RILRADIOSTATEPASSWORD
    {
    DWORD dwPasswordId;
    WCHAR wszPassword[ 32 ];
    } 	RILRADIOSTATEPASSWORD;

typedef struct RILRADIOSTATEPASSWORD *LPRILRADIOSTATEPASSWORD;

typedef 
enum RILRFSTATEPARAMMASK
    {
        RIL_PARAM_RFSTATE_NONE	= 0,
        RIL_PARAM_RFSTATE_RFSTATE	= 0x1,
        RIL_PARAM_RFSTATE_RFDATASIZE	= 0x2,
        RIL_PARAM_RFSTATE_RFDATA	= 0x4,
        RIL_PARAM_RFSTATE_ALL	= 0x7
    } 	RILRFSTATEPARAMMASK;

typedef struct RILRFSTATE
    {
    DWORD cbSize;
    DWORD dwParams;
    DWORD dwRFState;
    DWORD dwRFDataSize;
    BYTE bRFData[ 1 ];
    } 	RILRFSTATE;

typedef struct RILRFSTATE *LPRILRFSTATE;

typedef 
enum RILCDMAAVOIDANCEREQUESTYPE
    {
        RIL_AVOID_SYS_IDLE	= 0x1,
        RIL_AVOID_SYS_CLR_LIST	= 0x2
    } 	RILCDMAAVOIDANCEREQUESTYPE;

typedef struct RILAVOIDCDMASYSTEMPARAMS
    {
    DWORD dwExecutor;
    RILCDMAAVOIDANCEREQUESTYPE dwAvoidanceReqType;
    } 	RILAVOIDCDMASYSTEMPARAMS;

typedef struct RILAVOIDCDMASYSTEMPARAMS *LPRILAVOIDCDMASYSTEMPARAMS;

typedef 
enum RILERRORCODES
    {
        RIL_E_PHONEFAILURE	= ( RIL_ERROR_MASK | 0x1 ) ,
        RIL_E_NOCONNECTION	= ( RIL_ERROR_MASK | 0x2 ) ,
        RIL_E_LINKRESERVED	= ( RIL_ERROR_MASK | 0x3 ) ,
        RIL_E_OPNOTALLOWED	= ( RIL_ERROR_MASK | 0x4 ) ,
        RIL_E_OPNOTSUPPORTED	= ( RIL_ERROR_MASK | 0x5 ) ,
        RIL_E_UICCNOTINSERTED	= ( RIL_ERROR_MASK | 0x6 ) ,
        RIL_E_UICCFAILURE	= ( RIL_ERROR_MASK | 0x7 ) ,
        RIL_E_UICCBUSY	= ( RIL_ERROR_MASK | 0x8 ) ,
        RIL_E_UICCWRONG	= ( RIL_ERROR_MASK | 0x9 ) ,
        RIL_E_INCORRECTPASSWORD	= ( RIL_ERROR_MASK | 0xa ) ,
        RIL_E_MEMORYFULL	= ( RIL_ERROR_MASK | 0xb ) ,
        RIL_E_INVALIDINDEX	= ( RIL_ERROR_MASK | 0xc ) ,
        RIL_E_NOTFOUND	= ( RIL_ERROR_MASK | 0xd ) ,
        RIL_E_MEMORYFAILURE	= ( RIL_ERROR_MASK | 0xe ) ,
        RIL_E_TEXTSTRINGTOOLONG	= ( RIL_ERROR_MASK | 0xf ) ,
        RIL_E_INVALIDTEXTSTRING	= ( RIL_ERROR_MASK | 0x10 ) ,
        RIL_E_DIALSTRINGTOOLONG	= ( RIL_ERROR_MASK | 0x11 ) ,
        RIL_E_INVALIDDIALSTRING	= ( RIL_ERROR_MASK | 0x12 ) ,
        RIL_E_NONETWORKSVC	= ( RIL_ERROR_MASK | 0x13 ) ,
        RIL_E_NETWORKTIMEOUT	= ( RIL_ERROR_MASK | 0x14 ) ,
        RIL_E_EMERGENCYONLY	= ( RIL_ERROR_MASK | 0x15 ) ,
        RIL_E_TELEMATICIWUNSUPPORTED	= ( RIL_ERROR_MASK | 0x16 ) ,
        RIL_E_SMTYPE0UNSUPPORTED	= ( RIL_ERROR_MASK | 0x17 ) ,
        RIL_E_CANTREPLACEMSG	= ( RIL_ERROR_MASK | 0x18 ) ,
        RIL_E_PROTOCOLIDERROR	= ( RIL_ERROR_MASK | 0x19 ) ,
        RIL_E_DCSUNSUPPORTED	= ( RIL_ERROR_MASK | 0x1a ) ,
        RIL_E_MSGCLASSUNSUPPORTED	= ( RIL_ERROR_MASK | 0x1b ) ,
        RIL_E_DCSERROR	= ( RIL_ERROR_MASK | 0x1c ) ,
        RIL_E_CMDCANTBEACTIONED	= ( RIL_ERROR_MASK | 0x1d ) ,
        RIL_E_CMDUNSUPPORTED	= ( RIL_ERROR_MASK | 0x1e ) ,
        RIL_E_CMDERROR	= ( RIL_ERROR_MASK | 0x1f ) ,
        RIL_E_MSGBODYHEADERERROR	= ( RIL_ERROR_MASK | 0x20 ) ,
        RIL_E_SCBUSY	= ( RIL_ERROR_MASK | 0x21 ) ,
        RIL_E_NOSCSUBSCRIPTION	= ( RIL_ERROR_MASK | 0x22 ) ,
        RIL_E_SCSYSTEMFAILURE	= ( RIL_ERROR_MASK | 0x23 ) ,
        RIL_E_INVALIDADDRESS	= ( RIL_ERROR_MASK | 0x24 ) ,
        RIL_E_DESTINATIONBARRED	= ( RIL_ERROR_MASK | 0x25 ) ,
        RIL_E_REJECTEDDUPLICATE	= ( RIL_ERROR_MASK | 0x26 ) ,
        RIL_E_VPFUNSUPPORTED	= ( RIL_ERROR_MASK | 0x27 ) ,
        RIL_E_VPUNSUPPORTED	= ( RIL_ERROR_MASK | 0x28 ) ,
        RIL_E_UICCMSGSTORAGEFULL	= ( RIL_ERROR_MASK | 0x29 ) ,
        RIL_E_NOUICCMSGSTORAGE	= ( RIL_ERROR_MASK | 0x2a ) ,
        RIL_E_UICCTOOLKITBUSY	= ( RIL_ERROR_MASK | 0x2b ) ,
        RIL_E_UICCDOWNLOADERROR	= ( RIL_ERROR_MASK | 0x2c ) ,
        RIL_E_MSGSVCRESERVED	= ( RIL_ERROR_MASK | 0x2d ) ,
        RIL_E_INVALIDMSGPARAM	= ( RIL_ERROR_MASK | 0x2e ) ,
        RIL_E_INVALIDSCADDRESS	= ( RIL_ERROR_MASK | 0x2f ) ,
        RIL_E_UNASSIGNEDNUMBER	= ( RIL_ERROR_MASK | 0x30 ) ,
        RIL_E_MSGBARREDBYOPERATOR	= ( RIL_ERROR_MASK | 0x31 ) ,
        RIL_E_MSGCALLBARRED	= ( RIL_ERROR_MASK | 0x32 ) ,
        RIL_E_MSGXFERREJECTED	= ( RIL_ERROR_MASK | 0x33 ) ,
        RIL_E_DESTINATIONOUTOFSVC	= ( RIL_ERROR_MASK | 0x34 ) ,
        RIL_E_UNIDENTIFIEDSUBCRIBER	= ( RIL_ERROR_MASK | 0x35 ) ,
        RIL_E_SVCUNSUPPORTED	= ( RIL_ERROR_MASK | 0x36 ) ,
        RIL_E_UNKNOWNSUBSCRIBER	= ( RIL_ERROR_MASK | 0x37 ) ,
        RIL_E_NETWKOUTOFORDER	= ( RIL_ERROR_MASK | 0x38 ) ,
        RIL_E_NETWKTEMPFAILURE	= ( RIL_ERROR_MASK | 0x39 ) ,
        RIL_E_CONGESTION	= ( RIL_ERROR_MASK | 0x3a ) ,
        RIL_E_RESOURCESUNAVAILABLE	= ( RIL_ERROR_MASK | 0x3b ) ,
        RIL_E_SVCNOTSUBSCRIBED	= ( RIL_ERROR_MASK | 0x3c ) ,
        RIL_E_SVCNOTIMPLEMENTED	= ( RIL_ERROR_MASK | 0x3d ) ,
        RIL_E_INVALIDMSGREFERENCE	= ( RIL_ERROR_MASK | 0x3e ) ,
        RIL_E_INVALIDMSG	= ( RIL_ERROR_MASK | 0x3f ) ,
        RIL_E_INVALIDMANDATORYINFO	= ( RIL_ERROR_MASK | 0x40 ) ,
        RIL_E_MSGTYPEUNSUPPORTED	= ( RIL_ERROR_MASK | 0x41 ) ,
        RIL_E_ICOMPATIBLEMSG	= ( RIL_ERROR_MASK | 0x42 ) ,
        RIL_E_INFOELEMENTUNSUPPORTED	= ( RIL_ERROR_MASK | 0x43 ) ,
        RIL_E_PROTOCOLERROR	= ( RIL_ERROR_MASK | 0x44 ) ,
        RIL_E_NETWORKERROR	= ( RIL_ERROR_MASK | 0x45 ) ,
        RIL_E_MESSAGINGERROR	= ( RIL_ERROR_MASK | 0x46 ) ,
        RIL_E_NOTREADY	= ( RIL_ERROR_MASK | 0x47 ) ,
        RIL_E_TIMEDOUT	= ( RIL_ERROR_MASK | 0x48 ) ,
        RIL_E_CANCELLED	= ( RIL_ERROR_MASK | 0x49 ) ,
        RIL_E_NONOTIFYCALLBACK	= ( RIL_ERROR_MASK | 0x4a ) ,
        RIL_E_OPFMTUNAVAILABLE	= ( RIL_ERROR_MASK | 0x4b ) ,
        RIL_E_NORESPONSETODIAL	= ( RIL_ERROR_MASK | 0x4c ) ,
        RIL_E_SECURITYFAILURE	= ( RIL_ERROR_MASK | 0x4d ) ,
        RIL_E_RADIOFAILEDINIT	= ( RIL_ERROR_MASK | 0x4e ) ,
        RIL_E_DRIVERINITFAILED	= ( RIL_ERROR_MASK | 0x4f ) ,
        RIL_E_RADIONOTPRESENT	= ( RIL_ERROR_MASK | 0x50 ) ,
        RIL_E_RADIOOFF	= ( RIL_ERROR_MASK | 0x51 ) ,
        RIL_E_ILLEGALMS	= ( RIL_ERROR_MASK | 0x52 ) ,
        RIL_E_ILLEGALME	= ( RIL_ERROR_MASK | 0x53 ) ,
        RIL_E_GPRSSERVICENOTALLOWED	= ( RIL_ERROR_MASK | 0x54 ) ,
        RIL_E_PLMNNOTALLOWED	= ( RIL_ERROR_MASK | 0x55 ) ,
        RIL_E_LOCATIONAREANOTALLOWED	= ( RIL_ERROR_MASK | 0x56 ) ,
        RIL_E_ROAMINGNOTALLOWEDINTHISLOCATIONAREA	= ( RIL_ERROR_MASK | 0x57 ) ,
        RIL_E_SERVICEOPTIONNOTSUPPORTED	= ( RIL_ERROR_MASK | 0x58 ) ,
        RIL_E_REQUESTEDSERVICEOPTIONNOTSUBSCRIBED	= ( RIL_ERROR_MASK | 0x59 ) ,
        RIL_E_SERVICEOPTIONTEMPORARILYOUTOFORDER	= ( RIL_ERROR_MASK | 0x5a ) ,
        RIL_E_PDPAUTHENTICATIONFAILURE	= ( RIL_ERROR_MASK | 0x5b ) ,
        RIL_E_INVALIDMOBILECLASS	= ( RIL_ERROR_MASK | 0x5c ) ,
        RIL_E_UNSPECIFIEDGPRSERROR	= ( RIL_ERROR_MASK | 0x5d ) ,
        RIL_E_RADIOREBOOTED	= ( RIL_ERROR_MASK | 0x5e ) ,
        RIL_E_INVALIDCONTEXTSTATE	= ( RIL_ERROR_MASK | 0x5f ) ,
        RIL_E_MAXCONTEXTS	= ( RIL_ERROR_MASK | 0x60 ) ,
        RIL_E_SYNCHRONOUS_DATA_UNAVAILABLE	= ( RIL_ERROR_MASK | 0x61 ) ,
        RIL_E_FDNRESTRICT	= ( RIL_ERROR_MASK | 0x62 ) ,
        RIL_E_INVALIDASYNCCOMMANDRESPONSE	= ( RIL_ERROR_MASK | 0x63 ) ,
        RIL_E_INCOMPATIBLEPROXYDRIVER	= ( RIL_ERROR_MASK | 0x64 ) ,
        RIL_E_INVALIDDRIVERVERSION	= ( RIL_ERROR_MASK | 0x65 ) ,
        RIL_E_USIMCALLMODIFIED	= ( RIL_ERROR_MASK | 0x66 ) ,
        RIL_E_PASSWORDMISMATCH	= ( RIL_ERROR_MASK | 0x67 ) ,
        RIL_E_INVALIDCONTEXTACTIVATIONSTRING	= ( RIL_ERROR_MASK | 0x68 ) ,
        RIL_E_UICCAPPINACCESSIBLE	= ( RIL_ERROR_MASK | 0x69 ) ,
        RIL_E_UICCPINREQUIRED	= ( RIL_ERROR_MASK | 0x6a ) ,
        RIL_E_UICCPUKREQUIRED	= ( RIL_ERROR_MASK | 0x6b ) ,
        RIL_E_UICCPUKBLOCKED	= ( RIL_ERROR_MASK | 0x6c ) ,
        RIL_E_EXECUTORNOTREADY	= ( RIL_ERROR_MASK | 0x6d ) ,
        RIL_E_INVALIDUICCKEYREF	= ( RIL_ERROR_MASK | 0x6e ) ,
        RIL_E_UICCINACTIVE	= ( RIL_ERROR_MASK | 0x6f ) ,
        RIL_E_PERSOPUKREQUIRED	= ( RIL_ERROR_MASK | 0x70 ) ,
        RIL_E_PERSOPUKBLOCKED	= ( RIL_ERROR_MASK | 0x71 ) ,
        RIL_E_PERSOCHECKFAILED	= ( RIL_ERROR_MASK | 0x72 ) ,
        RIL_E_INVALIDUICCPATH	= ( RIL_ERROR_MASK | 0x73 ) ,
        RIL_E_IMSTEMPFAILURE	= ( RIL_ERROR_MASK | 0x74 ) ,
        RIL_E_UICCNOTREADY	= ( RIL_ERROR_MASK | 0x75 ) ,
        RIL_E_UICCPOWEROFF	= ( RIL_ERROR_MASK | 0x76 ) ,
        RIL_E_CALLISACTIVE	= ( RIL_ERROR_MASK | 0x77 ) ,
        RIL_E_USIMCALLBLOCKED	= ( RIL_ERROR_MASK | 0x78 ) ,
        RIL_E_UICCADMRESTRICTED	= ( RIL_ERROR_MASK | 0x79 ) ,
        RIL_E_DMSERVICENOTREADY	= ( RIL_ERROR_MASK | 0x7a ) ,
        RIL_E_DMGETCONFIGFAILED	= ( RIL_ERROR_MASK | 0x7b ) ,
        RIL_E_DMCOMMITFAILED	= ( RIL_ERROR_MASK | 0x7c ) ,
        RIL_E_OTHEREXECUTORBUSY	= ( RIL_ERROR_MASK | 0x7d ) ,
        RIL_E_IMSNOHANDOVERTARGETFOUND	= ( RIL_ERROR_MASK | 0x7e ) ,
        RIL_E_VCCHANDOVERINPROGRESS	= ( RIL_ERROR_MASK | 0x7f ) ,
        RIL_E_INVALIDREMOTEURI	= ( RIL_ERROR_MASK | 0x80 ) ,
        RIL_E_ECTNOTALLOWED	= ( RIL_ERROR_MASK | 0x81 ) ,
        RIL_E_ECTCALLINCONF	= ( RIL_ERROR_MASK | 0x82 ) ,
        RIL_E_ECTCALLNOTONHOLD	= ( RIL_ERROR_MASK | 0x83 ) ,
        RIL_E_ECTNOTSUBSCRIBED	= ( RIL_ERROR_MASK | 0x84 ) ,
        RIL_E_ECTUNAVAILABLE	= ( RIL_ERROR_MASK | 0x85 ) ,
        RIL_E_ECTINCOMPATIBLE	= ( RIL_ERROR_MASK | 0x86 ) ,
        RIL_E_ECTNOTSUPPORTED	= ( RIL_ERROR_MASK | 0x87 ) ,
        RIL_E_ECTSYSTEMERROR	= ( RIL_ERROR_MASK | 0x88 ) ,
        RIL_E_ECTNORESOURCE	= ( RIL_ERROR_MASK | 0x89 ) ,
        RIL_E_ECTCALLBARRED	= ( RIL_ERROR_MASK | 0x8a ) ,
        RIL_E_ECTUNKNOWN	= ( RIL_ERROR_MASK | 0x8b ) ,
        RIL_E_IMSCALLISACTIVE	= ( RIL_ERROR_MASK | 0x8c ) 
    } 	RILERRORCODES;

typedef struct RILNOTIFICATIONPARAMS
    {
    DWORD dwNotificationCount;
    DWORD pdwNotifications[ 1 ];
    } 	RILNOTIFICATIONPARAMS;

typedef struct RILNOTIFICATIONPARAMS *LPRILNOTIFICATIONPARAMS;

typedef 
enum RILNOTIFICATIONCLASSES
    {
        RIL_NCLASS_FUNCRESULT	= 0,
        RIL_NCLASS_NOTIFICATIONS	= 0x10000000
    } 	RILNOTIFICATIONCLASSES;

typedef 
enum RILFUNCTIONRESULTS
    {
        RIL_RESULT_OK	= ( 0x1 | RIL_NCLASS_FUNCRESULT ) ,
        RIL_RESULT_ERROR	= ( 0x2 | RIL_NCLASS_FUNCRESULT ) 
    } 	RILFUNCTIONRESULTS;

typedef 
enum RILNOTIFICATIONS
    {
        RIL_NOTIFY_OEM_MAX	= ( 0xff | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_RADIOEQUIPMENTSTATECHANGED	= ( 0x100 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_RADIOPRESENCECHANGED	= ( 0x101 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UICCFILE_DATACHANGE	= ( 0x102 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UICCAPP_DATACHANGE	= ( 0x103 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SLOTINFOCHANGED	= ( 0x104 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CARDAPPREMOVED	= ( 0x105 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CARDAPPADDED	= ( 0x106 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UICCLOCKSTATUS	= ( 0x107 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UICCAPPPERSOCHECKSTATUS	= ( 0x108 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_PHONEBOOKENTRYDELETED	= ( 0x109 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_PHONEBOOKENTRYSTORED	= ( 0x10a | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_PHONEBOOKREADYSTATE	= ( 0x10b | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EMERGENCYNUMBERLISTCHANGED	= ( 0x10c | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_REGSTATUSCHANGED	= ( 0x10d | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_LOCATIONUPDATE	= ( 0x10e | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_NETWORKCODECHANGED	= ( 0x10f | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_PROVISION_STATUS	= ( 0x110 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SYSTEMPREFSCHANGED	= ( 0x111 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EXECUTORSTATE	= ( 0x112 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MANAGED_ROAMING	= ( 0x113 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SIGNALQUALITY	= ( 0x114 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_NITZ	= ( 0x115 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UICCTOOLKITCMD	= ( 0x116 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CALLMODIFICATIONINFO	= ( 0x117 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CALLPROGRESSINFO	= ( 0x118 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EMERGENCYMODEENTERED	= ( 0x119 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EMERGENCYMODEEXITED	= ( 0x11a | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CALLWAITING	= ( 0x11b | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_DIALEDID	= ( 0x11c | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_DISPLAY	= ( 0x11d | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SUPSVCINFO	= ( 0x11e | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SUPSERVICEDATA	= ( 0x11f | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_UNSOLICITEDSS	= ( 0x120 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_LINECONTROL	= ( 0x121 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MESSAGE	= ( 0x122 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MESSAGE_IN_UICC	= ( 0x123 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_IMSSTATUS	= ( 0x124 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_ADDITIONALNUMBERSTRINGUPDATED	= ( 0x125 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SUPSERVICEDATATERMINATED	= ( 0x126 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CLEARIDLEMODETEXT	= ( 0x127 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MESSAGE_STORAGE_FULL	= ( 0x128 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_TONESIGNAL	= ( 0x129 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_FORWARDSTARTDTMF	= ( 0x12a | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_FORWARDSTOPDTMF	= ( 0x12b | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_FORWARDBURSTDTMF	= ( 0x12c | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EXECUTORFOCUSSTATECHANGED	= ( 0x12d | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_EXECUTORRFSTATE	= ( 0x12e | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MODEMRESET	= ( 0x12f | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_RADIOCONFIGURATION	= ( 0x130 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_IMSHANDOVERATTEMPT	= ( 0x131 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_ADDITIONALCALLERINFO	= ( 0x132 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MWISUMMARY	= ( 0x133 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_MWIDETAILS	= ( 0x134 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_IMSFAILURE	= ( 0x135 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_CONFPARTICIPANTSTATUS	= ( 0x136 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_SMSREADYSTATUS	= ( 0x137 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_REQUESTGEOLOCATIONDATA	= ( 0x138 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_RTT	= ( 0x139 | RIL_NCLASS_NOTIFICATIONS ) ,
        RIL_NOTIFY_COUNT	= ( 0x13a | RIL_NCLASS_NOTIFICATIONS ) 
    } 	RILNOTIFICATIONS;

typedef 
enum RILCOMMANDS
    {
        RIL_COMMAND_INITNOTIFICATIONS	= 0x1,
        RIL_COMMAND_GETNEXTNOTIFICATION	= 0x2,
        RIL_COMMAND_ENABLENOTIFICATIONS	= 0x3,
        RIL_COMMAND_DISABLENOTIFICATIONS	= 0x4,
        RIL_COMMAND_GETDRIVERVERSION	= 0x5,
        RIL_COMMAND_GETDEVCAPS	= 0x6,
        RIL_COMMAND_GETDEVICEINFO	= 0x7,
        RIL_COMMAND_GETEQUIPMENTSTATE	= 0x8,
        RIL_COMMAND_SETEQUIPMENTSTATE	= 0x9,
        RIL_COMMAND_SETNOTIFICATIONFILTERSTATE	= 0xa,
        RIL_COMMAND_GETNOTIFICATIONFILTERSTATE	= 0xb,
        RIL_COMMAND_ENUMERATESLOTS	= 0xc,
        RIL_COMMAND_GETCARDINFO	= 0xd,
        RIL_COMMAND_SETSLOTPOWER	= 0xe,
        RIL_COMMAND_GETUICCRECORDSTATUS	= 0xf,
        RIL_COMMAND_SENDRESTRICTEDUICCCMD	= 0x10,
        RIL_COMMAND_WATCHUICCFILECHANGE	= 0x11,
        RIL_COMMAND_GETUICCPRLID	= 0x12,
        RIL_COMMAND_GETIMSI	= 0x13,
        RIL_COMMAND_GETSUBSCRIBERNUMBERS	= 0x14,
        RIL_COMMAND_GETUICCLOCKSTATE	= 0x15,
        RIL_COMMAND_GETUICCSERVICELOCK	= 0x16,
        RIL_COMMAND_VERIFYUICCLOCK	= 0x17,
        RIL_COMMAND_SETUICCLOCKENABLED	= 0x18,
        RIL_COMMAND_UNBLOCKUICCLOCK	= 0x19,
        RIL_COMMAND_CHANGEUICCLOCKPASSWORD	= 0x1a,
        RIL_COMMAND_GETUICCAPPPERSOCHECKSTATE	= 0x1b,
        RIL_COMMAND_GETPERSODEACTIVATIONSTATE	= 0x1c,
        RIL_COMMAND_DEACTIVATEPERSO	= 0x1d,
        RIL_COMMAND_READPHONEBOOKENTRIES	= 0x1e,
        RIL_COMMAND_WRITEPHONEBOOKENTRY	= 0x1f,
        RIL_COMMAND_DELETEPHONEBOOKENTRY	= 0x20,
        RIL_COMMAND_GETPHONEBOOKOPTIONS	= 0x21,
        RIL_COMMAND_GETALLADDITIONALNUMBERSTRINGS	= 0x22,
        RIL_COMMAND_GETALLEMERGENCYNUMBERS	= 0x23,
        RIL_COMMAND_SETRADIOCONFIGURATION	= 0x24,
        RIL_COMMAND_GETRADIOCONFIGURATION	= 0x25,
        RIL_COMMAND_SETEXECUTORCONFIG	= 0x26,
        RIL_COMMAND_GETEXECUTORCONFIG	= 0x27,
        RIL_COMMAND_SETSYSTEMSELECTIONPREFS	= 0x28,
        RIL_COMMAND_GETSYSTEMSELECTIONPREFS	= 0x29,
        RIL_COMMAND_GETOPERATORLIST	= 0x2a,
        RIL_COMMAND_GETPREFERREDOPERATORLIST	= 0x2b,
        RIL_COMMAND_GETCURRENTREGSTATUS	= 0x2c,
        RIL_COMMAND_GETSIGNALQUALITY	= 0x2d,
        RIL_COMMAND_SENDUICCTOOLKITCMDRESPONSE	= 0x2f,
        RIL_COMMAND_SENDUICCTOOLKITENVELOPE	= 0x30,
        RIL_COMMAND_DIAL	= 0x31,
        RIL_COMMAND_MANAGECALLS	= 0x32,
        RIL_COMMAND_EMERGENCYMODECONTROL	= 0x33,
        RIL_COMMAND_GETCALLFORWARDINGSETTINGS	= 0x34,
        RIL_COMMAND_SETCALLFORWARDINGSTATUS	= 0x35,
        RIL_COMMAND_ADDCALLFORWARDING	= 0x36,
        RIL_COMMAND_REMOVECALLFORWARDING	= 0x37,
        RIL_COMMAND_GETCALLBARRINGSTATUS	= 0x38,
        RIL_COMMAND_SETCALLBARRINGSTATUS	= 0x39,
        RIL_COMMAND_CHANGECALLBARRINGPASSWORD	= 0x3a,
        RIL_COMMAND_GETCALLWAITINGSETTINGS	= 0x3b,
        RIL_COMMAND_SETCALLWAITINGSTATUS	= 0x3c,
        RIL_COMMAND_GETCALLERIDSETTINGS	= 0x3d,
        RIL_COMMAND_GETDIALEDIDSETTINGS	= 0x3e,
        RIL_COMMAND_GETHIDECONNECTEDIDSETTINGS	= 0x3f,
        RIL_COMMAND_GETHIDEIDSETTINGS	= 0x40,
        RIL_COMMAND_SENDFLASH	= 0x41,
        RIL_COMMAND_SENDSUPSERVICEDATA	= 0x42,
        RIL_COMMAND_SENDDTMF	= 0x43,
        RIL_COMMAND_STARTDTMF	= 0x44,
        RIL_COMMAND_STOPDTMF	= 0x45,
        RIL_COMMAND_GETMSGSERVICEOPTIONS	= 0x46,
        RIL_COMMAND_READMSG	= 0x47,
        RIL_COMMAND_WRITEMSG	= 0x48,
        RIL_COMMAND_DELETEMSG	= 0x49,
        RIL_COMMAND_GETCELLBROADCASTMSGCONFIG	= 0x4a,
        RIL_COMMAND_SETCELLBROADCASTMSGCONFIG	= 0x4b,
        RIL_COMMAND_GETMSGINUICCSTATUS	= 0x4c,
        RIL_COMMAND_SETMSGINUICCSTATUS	= 0x4d,
        RIL_COMMAND_SETMSGMEMORYSTATUS	= 0x4e,
        RIL_COMMAND_SENDMSG	= 0x4f,
        RIL_COMMAND_GETSMSC	= 0x50,
        RIL_COMMAND_SETSMSC	= 0x51,
        RIL_COMMAND_GETIMSSTATUS	= 0x52,
        RIL_COMMAND_GETPOSITIONINFO	= 0x53,
        RIL_COMMAND_GETRADIOSTATEGROUPS	= 0x54,
        RIL_COMMAND_GETRADIOSTATEDETAILS	= 0x55,
        RIL_COMMAND_SETRADIOSTATEDETAILS	= 0x56,
        RIL_COMMAND_RADIOSTATEPASSWORDCOMPARE	= 0x57,
        RIL_COMMAND_RADIOSTATEGETPASSWORDRETRYCOUNT	= 0x58,
        RIL_COMMAND_DEVSPECIFIC	= 0x59,
        RIL_COMMAND_SETRFSTATE	= 0x5a,
        RIL_COMMAND_GETRFSTATE	= 0x5b,
        RIL_COMMAND_GETDMPROFILECONFIGINFO	= 0x5c,
        RIL_COMMAND_SETDMPROFILECONFIGINFO	= 0x5d,
        RIL_COMMAND_WRITEADDITIONALNUMBERSTRING	= 0x5e,
        RIL_COMMAND_DELETEADDITIONALNUMBERSTRING	= 0x5f,
        RIL_COMMAND_GETUICCATR	= 0x60,
        RIL_COMMAND_OPENUICCLOGICALCHANNEL	= 0x61,
        RIL_COMMAND_CLOSEUICCLOGICALCHANNEL	= 0x62,
        RIL_COMMAND_EXCHANGEUICCAPDU	= 0x63,
        RIL_COMMAND_SENDSUPSERVICEDATARESPONSE	= 0x64,
        RIL_COMMAND_CANCELSUPSERVICEDATASESSION	= 0x65,
        RIL_COMMAND_SETUICCTOOLKITPROFILE	= 0x66,
        RIL_COMMAND_GETUICCTOOLKITPROFILE	= 0x67,
        RIL_COMMAND_REGISTERUICCTOOLKITSERVICE	= 0x68,
        RIL_COMMAND_SENDMSGACK	= 0x69,
        RIL_COMMAND_CLOSEUICCLOGICALCHANNELGROUP	= 0x6a,
        RIL_COMMAND_SETPREFERREDOPERATORLIST	= 0x6b,
        RIL_COMMAND_GETUICCSERVICESTATE	= 0x6c,
        RIL_COMMAND_SETUICCSERVICESTATE	= 0x6d,
        RIL_COMMAND_GETCALLLIST	= 0x6e,
        RIL_COMMAND_GETEXECUTORFOCUS	= 0x6f,
        RIL_COMMAND_SETEXECUTORFOCUS	= 0x70,
        RIL_COMMAND_GETEMERGENCYMODE	= 0x71,
        RIL_COMMAND_GETEXECUTORRFSTATE	= 0x72,
        RIL_COMMAND_SETEXECUTORRFSTATE	= 0x73,
        RIL_COMMAND_RESETMODEM	= 0x74,
        RIL_COMMAND_CANCELGETOPERATORLIST	= 0x75,
        RIL_COMMAND_AVOIDCDMASYSTEM	= 0x76,
        RIL_COMMAND_SETPSMEDIACONFIGURATION	= 0x77,
        RIL_COMMAND_GETPSMEDIACONFIGURATION	= 0x78,
        RIL_COMMAND_SETGEOLOCATIONDATA	= 0x79,
        RIL_COMMAND_SETTERMINALCAPABILITY	= 0x7a,
        RIL_COMMAND_GETTERMINALCAPABILITY	= 0x7b,
        RIL_COMMAND_SENDRTT	= 0x7c,
        RIL_COMMAND_ENABLEMODEMFILTERS	= 0x400,
        RIL_COMMAND_DISABLEMODEMFILTERS	= 0x401,
        RIL_COMMAND_STARTMODEMLOGS	= 0x402,
        RIL_COMMAND_STOPMODEMLOGS	= 0x403,
        RIL_COMMAND_DRAINMODEMLOGS	= 0x404,
        RIL_COMMAND_COUNT	= 0x404
    } 	RILCOMMANDS;

typedef struct RILVERSIONPARAMS
    {
    WORD Minor;
    WORD Major;
    } 	RILVERSIONPARAMS;

typedef struct RILVERSIONPARAMS *LPRILVERSIONPARAMS;

typedef struct GETDEVICEINFORESPONSE
    {
    char Result[ 256 ];
    } 	GETDEVICEINFORESPONSE;

typedef struct GETDEVICEINFORESPONSE *LPGETDEVICEINFORESPONSE;

// Turns off packing of structures, which enables the automatic alignment.
#include <poppack.h>


extern RPC_IF_HANDLE __MIDL_itf_rilapitypes_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_rilapitypes_0000_0000_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


